如何从子窗口调用javascript函数到主窗口中的iframe?

时间:2013-05-06 14:59:37

标签: javascript jquery ajax iframe

我有一个主文件: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和其他文件时,我不能用这种方式。

我该怎么做?

1 个答案:

答案 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);
    }
  });
});