0

私はメインファイルを持っています:index.phpには1つのiframeがあります:メイン

<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 のみを実行するButton1JSClickと、その方法で子ウィンドウからJavaScript 関数を呼び出すことができます。

opener.Button1JSClick(event);

しかし、index.php やその他のファイルを実行すると、この方法は使用できません。

どうすればできますか?

4

1 に答える 1

1

iframes にはオープナーはありません。

1 レベル上 ( 1 レベル下)の場合は、最上位のウィンドウに対してwindow.Button1JSClick(event);またはを試してください。top.Button1JSClick(event);parent.Button1JSClick(event);top

ただし、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);
    }
  });
});
于 2013-05-06T15:06:44.557 に答える