简体   繁体   English

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

[英]How can i call a javascript function from a child window to an iframe where in main window?

i've a main file : index.php it has 1 iframe : main 我有一个主文件:index.php它有1个iframe:主文件

<iframe src="main.php" id="main_frame" name="main_frame" >
</iframe>

main.php has 2 iframe : middle_frame and top_frame 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 has 2 iframe : middle_left_frame , middle_right_frame 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>

When i run only the middle_left.php i can call a javascript function Button1JSClick from a child window with that way : 当我只运行middle_left.php时,我可以通过这种方式从子窗口调用javascript函数Button1JSClick

opener.Button1JSClick(event);

but, when i run to index.php and other file i can't use this way. 但是,当我运行index.php和其他文件时,无法使用这种方式。

how can i do it? 我该怎么做?

there is no opener in iframes. iframe中没有开启器。

Try window.Button1JSClick(event); 试试window.Button1JSClick(event); or top.Button1JSClick(event); top.Button1JSClick(event); for topmost window, parent.Button1JSClick(event); 对于最上面的窗口, parent.Button1JSClick(event); for one level up (which is top one level down) 对于一个级别(其为top向下一级)

However since you are using jQuery, load the pages into divs with relevant overflow 但是,由于您使用的是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>

using something like 使用类似

$(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);
    }
  });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM