我有一个主文件:index.php 它有1个iframe:main
<iframe src="main.php" id="main_frame" name="main_frame" >
</iframe>
main.php有2个iframe:middle_frame和top_frame
<iframe src="middle.php" id="middle_frame" name="middle_frame" >
</iframe>
<iframesrc="pageTop.php" id="top_frame" name="top_frame" >
</iframe>
middle.php有2个iframe:middle_left_frame,middle_right_frame
<iframe src="middle_left.php" id="middle_left_frame" name="middle_left_frame" >
</iframe>
<iframe src="middle_right.php" id="middle_right_frame" name="middle_right_frame" >
</iframe>
当我只运行middle_left.php时,我可以通过这种方式从子窗口调用javascript函数Button1JSClick
:
opener.Button1JSClick(event);
但是,当我跑到index.php和其他文件时,我不能用这种方式。
我该怎么做?
答案 0 :(得分:1)
iframe中没有开场白。
尝试window.Button1JSClick(event);
或top.Button1JSClick(event);
获取最顶层窗口,parent.Button1JSClick(event);
升级一级(top
一级降低{/ p>}
但是,由于您使用的是jQuery,请将页面加载到具有相关溢出的div中
<div id="content">
<div data-src="main.php" id="main_frame">
<div data-src="pageTop.php" id="top_frame"></div>
<div data-src="middle.php" id="middle_frame">
<div data-src="middle_left.php" id="middle_left_frame"></div>
<div data-src="middle_right.php" id="middle_right_frame"></div>
</div>
</div>
</div>
使用
之类的东西$(function() {
$("div").each(function() {
var src= $(this).data("src");
if (src) {
if (this.id==="middle-left-frame") {
$(this).load(src,function() { Button1JSClick() });
}
else $(this).load(src);
}
});
});