• ベストアンサー

画面を閉じる(×ボタンやタスクバーから)をトリガーに処理を行えるのでしょうか?

親画面から子画面をポップアップ表示し、子画面に作成したボタンから(window.opener)をコールして、子画面を閉じる→親画面の処理を行う、という処理を実現しています。 ボタン押下時にJavaScriptをコールすることで処理は行えるのですが、ウィンドウの右上にある「×」ボタンや、タスクバーを右クリック→閉じるなどを行った際にも同じような処理を行うことはできるのでしょうか? 「画面が閉じられた」というトリガーにて処理を行うことができるのでしょうか? onUnloadイベントを試しましたが、「×」ボタンや、タスクバーを右クリック→閉じる場合は処理がおこわなわれませんでした。 よろしくおねがいします。

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

  • ベストアンサー
  • ron3
  • ベストアンサー率35% (7/20)
回答No.1

基本的に、ブラウザを直接閉じた場合は onUnloadなどで拾うことができなかったと思います。 IE限定になりそうな予感もしますが、開くときに、 window.openではなく、 window.showModalDialogを使ってみるというのはいかがでしょうか? http://www.tohoho-web.com/js/window.htm#showModalDialog 開いた側が閉じる際に値をセットしてやるようにしてやることで 判別するってのはどうでしょう? ソース例 ------------------------------------------------ //<開く側のソース> args = new Array(); args[0] = "AAA"; args[1] = "BBB"; val = showModalDialog("dlg.htm", args, "dialogHeight:100px;dialogWidth:300px"); if (!val){ //選択されてない場合の処理を記述 }else{ //選択された場合の処理を記述 } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //<開かれる側のソース> //ボタンのonclickなどに指定 function select_and_close(fld){ window.returnValue = fld.value; window.close(); } ~~~~~ <input type="button" name="test" value="1" onclick="select_and_close(this)"> <input type="button" name="test" value="2" onclick="select_and_close(this)"> ------------------------------------------------ でいかがでしょう? showModalDialogはほんとにmodalになってしまうのが難点ですが・・・

DynamisH
質問者

お礼

回答ありがとうございます。 showModalDialogは基本的に使用×でした・・・ お忙しいところありがとうございました。

その他の回答 (1)

回答No.2

わたしのマシン(WindowsXP、IE6 SP1)では、「×」ボタンや、タスクバーを右クリック→閉じる場合は処理が実行されます。 記述方法を確認してみてください。 <BODY bgColor="white" onUnload="alert('次のページに行きます')"> 参考URLのサンプル1を試してみてください。

参考URL:
http://www.openspc2.org/JavaScript/ref/event/onUnload.htm
DynamisH
質問者

お礼

回答ありがとうございます。 マシンによって反応したりしなかったり・・・ ということがあったので、×ボタン対応はしないことになりました。 お手数おかけして申し訳ありません。 ありがとうございました。

関連するQ&A