• ベストアンサー

window.open()について

window.open("sample.htm","sample_win","") として開いたウィンドウを別のウィンドウから閉じるにはどのような方法がありますか? つまり、win1=window.open("sample.htm","sample_win","") のようにしないで開いたウィンドウを閉じる方法を教えてください。

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

  • ベストアンサー
  • kircher
  • ベストアンサー率47% (11/23)
回答No.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()">

setera
質問者

お礼

ご回答ありがとうございます! なるほど。そういう手もあったかー。「こんなことってできるのかな?」って思って質問したのですが、いつもとは違った視点からのスクリプトでうれしいです。 参考になりました!

関連するQ&A