从父窗口调用iframe中的函数

时间:2011-07-01 21:24:28

标签: javascript html iframe

我无法弄清楚我在这里做错了什么。

我正在构建一个没有服务器端的网站 我有一个带有iframe的主页面,并且在按钮上单击我想要更改iframe的src并使用传递的参数调用其中的函数。

由于某种原因未调用该函数。

这是我的代码:

iframe:

<iframe id="main_area_frame" name="main_area_frame" src="" frameborder="0" width="100%"     height="100%"></iframe>

onclick功能:

function onSubMenuClick(images)
{
    //Set Images Frame
    main_area = document.getElementById("main_area_frame");
    main_area.src = "ImagesFrame.html";
    main_area.contentWindow.initializeImages(images);
}

iframe中的函数(ImagesFrame.html):

function initializeImages(imagesStr) 
{
    alert("initializeImages");
    ...
}

我注意到的一些奇怪的事情是

在main_area.contentWindow.initializeImages(images)之前添加警报时; 该函数以某种方式成功调用。

如果我从开始设置iframe的src并跳过main_area.src =“ImagesFrame.html”行; - 该函数再次被称为。

任何想法?

2 个答案:

答案 0 :(得分:0)

不确定是否是原因,但我会尝试在

之间进行延迟(睡眠)
main_area.src = "ImagesFrame.html";

main_area.contentWindow.initializeImages(images);

为了允许渲染iframe(我不知道它是由同一帧渲染还是浏览器启动一个新的)。

只是我的两分钱。

答案 1 :(得分:0)

我成功地从子iframe中发布了该函数 上传处理。例如,(替换 funcName ):

在子iframe中,编辑正文标记(或使用等效的javascript)

  <body onload='top.funcName = funcName'>

在父页面中,编辑javascript;现在 funcName 通常可以访问,
    value = top.funcName( )