• 締切済み

親ウィンドウの切り替え方法2

以前に、「ウィンドウAにてウィンドウBを開き、ウィンドウBにてウィンドウCを開くアプリケーションにて ウィンドウBを閉じてもウィンドウCは開いたままで、ウィンドウAを閉じたタイミングでウィンドウCを閉じるようにする方法」を質問し回答を頂きました。 上記の場合はうまくいったのですが ウィンドウA~Dがあり(Aが一番上の親、Dが一番下の子)、ウィンドウBを閉じた場合にウィンドウCを閉じ、ウィンドウDはウィンドウAを閉じたタイミングで閉じたいのですが、うまくいきません。 申し訳ありませんがよろしくお願い致します。

みんなの回答

  • howsike
  • ベストアンサー率58% (18/31)
回答No.1

以前の回答を参考にして質問ような動作しようとするとこのような感じになりますね。 <!-- Aのスクリプト --> <script> <!-- var DWIN=null;//Dのウィンドウ用の変数を準備する var BWIN=window.open("B.HTML","BWIN"); window.onunload=CloseAll;//ページを(移動)閉じようとしたら実行 function CloseAll(){ alert("Dも閉じます"); DWIN.close();//Dを閉じる } //--> </script> <!-- Bのスクリプト --> <script> <!-- var AWIN=window.opener; var CWIN=window.open("C.HTML","CWIN"); window.onunload=CloseAll;//ページを(移動)閉じようとしたら実行 function CloseAll(){ alert("Cも閉じます"); CWIN.close();//Cを閉じる } //--> </script> <!-- Cのスクリプト --> <script> <!-- var BWIN=window.opener; var DWIN=window.open("D.HTML","DWIN"); BWIN.AWIN.DWIN=DWIN;//親(B)の親(A)のDWINにDのウィンドウを入れておく(★) //--> </script> ------------------------------------------------ ちなみに<!-- Cのスクリプト -->ですが‥‥ (★)の部分は以下のようにも出来ます。 window.opener.window.opener.DWIN=DWIN;//親(B)の親(A)のDWINにDのウィンドウを入れておく 「window.opener」を続けて書くことで「親」の「親」の‥‥と、たどって行くことが出来ます。

関連するQ&A