• ベストアンサー

親ウィンドウと子ウィンドウの制御について、教えて下さい!

親ウィンドウと子ウィンドウの制御について、質問です。 子ウィンドウを開いた状態で、親ウィンドウを閉じた時に 連動して子ウィンドウを閉じたいのですが、閉じません。 (複数の子ウィンドウの内、閉じるモノと閉じないモノがあります。  同じ記述をしているんですが...) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

補足を見ましたが、、、 SyosaiWinはグローバル変数としても宣言されていますが、戻値を受け取る時にローカル宣言してますよ。 グローバルのSyosaiWinとローカルのSyosaiWinは別の変数であり、openの戻値を受け取ったSyosaiWinはopenSyosaiWin関数の終了とともに消滅します。 恐らく「うっかり」だったのだと思いますが、もし変数のスコープや寿命についての理解が完全でないのであれば、再度質問してください。

chitama
質問者

お礼

ご指摘のとおりでした! 本当にありがとうございました!

その他の回答 (1)

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

どう記述しているのでしょうか?  開いたウィンドウの名前を全部記憶しておいて、それらを閉じるだけで、親のClose時に閉じればいいだけでは?

chitama
質問者

補足

記述内容 ---------------------------------------------------------------------- /* ウィンドウ内容移行時に、サブウィンドウを閉じる */ function closeSubWin() { closeHinmokuWin(); closeSyosaiWin(); } /* 品目表示ウィンドウ */ var HinmokuWin = null; function openHinmokuWin( p1String ) { var url = "n_wzhinmokul01.jsp?" + p1String; var opt = "directories=no,location=no,menubar=no,resizable=yes,status=no,toolbar=no, width=" + 720 + ",height=" + 480; var winname ="hinmokuWin" HinmokuWin = window.open( url, winname, opt ); HinmokuWin.focus(); } function closeHinmokuWin() { if( HinmokuWin && HinmokuWin.name ) { HinmokuWin.close(); HinmokuWin = null; } } /* 詳細表示ウィンドウ */ var SyosaiWin = null; function openSyosaiWin( p2String ) { var url = "n_wzpwst.jsp?" + p2String; var opt = "directories=no,location=no,menubar=no,resizable=yes,status=no,toolbar=no,scrollbars=yes, width=" + 720 + ",height=" + 600; var winname ="syosaiWin" var SyosaiWin = window.open( url, winname, opt ); SyosaiWin.focus(); } function closeSyosaiWin() { if( SyosaiWin && SyosaiWin.name ) { SyosaiWin.close(); SyosaiWin = null; } } //--> </script> </head> <body onUnload="closeSubWin();" > ---------------------------------------------------------------------- 見にくかったら、スミマセン。 HinmokuWin は閉じるのですが SyosaiWin は閉じません。 どうでしょうか? よろしくお願いします。

関連するQ&A