我无法弄清楚我在这里做错了什么。
我正在构建一个没有服务器端的网站 我有一个带有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”行; - 该函数再次被称为。
任何想法?
答案 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( )