- ベストアンサー
window.open()について
window.open("sample.htm","sample_win","") として開いたウィンドウを別のウィンドウから閉じるにはどのような方法がありますか? つまり、win1=window.open("sample.htm","sample_win","") のようにしないで開いたウィンドウを閉じる方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
どちらにしろ、ウィンドウオブジェクトを指定して行うことになりますが、 手順としては、 1)親ウィンドウにサブウィンドウのオブジェクトを入れる変数を用意 2)サブウィンドウが開いたときに window.self を 親ウィンドウの用意した 変数に代入 3)親ウィンドウで、オブジェクトのメソッドを指定して、閉じる。 ちょっと変則的ですが、こんな感じではどうですか? 以下がサンプルです。 親ウィンドウ ---------------------------------------------------------------- <SCRIPT LANGUAGE="JavaScript"> <!-- var subwin; function open_win(){ open("sample.html","sample_win",""); } function close_sub(){ subwin.close(); } // --> </SCRIPT> <FORM> <INPUT TYPE="button" VALUE="Open" onClick="open_win()"> <INPUT TYPE="button" VALUE="Close" onClick="close_sub()"> </FORM> サブウィンドウ ---------------------------------------------------------------- <SCRIPT LANGUAGE="JavaScript"> <!-- function obj_trns(){ window.opener.subwin = window.self; } // --> </SCRIPT> <BODY onLoad="obj_trns()">
お礼
ご回答ありがとうございます! なるほど。そういう手もあったかー。「こんなことってできるのかな?」って思って質問したのですが、いつもとは違った視点からのスクリプトでうれしいです。 参考になりました!