プロが教える店舗&オフィスのセキュリティ対策術

親画面から子画面をポップアップ表示し、子画面に作成したボタンから(window.opener)をコールして、子画面を閉じる→親画面の処理を行う、という処理を実現しています。

ボタン押下時にJavaScriptをコールすることで処理は行えるのですが、ウィンドウの右上にある「×」ボタンや、タスクバーを右クリック→閉じるなどを行った際にも同じような処理を行うことはできるのでしょうか?

「画面が閉じられた」というトリガーにて処理を行うことができるのでしょうか?

onUnloadイベントを試しましたが、「×」ボタンや、タスクバーを右クリック→閉じる場合は処理がおこわなわれませんでした。


よろしくおねがいします。

A 回答 (2件)

基本的に、ブラウザを直接閉じた場合は


onUnloadなどで拾うことができなかったと思います。
IE限定になりそうな予感もしますが、開くときに、
window.openではなく、
window.showModalDialogを使ってみるというのはいかがでしょうか?
http://www.tohoho-web.com/js/window.htm#showModa …
開いた側が閉じる際に値をセットしてやるようにしてやることで
判別するってのはどうでしょう?
ソース例
------------------------------------------------
//<開く側のソース>
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になってしまうのが難点ですが・・・
    • good
    • 0
この回答へのお礼

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

お忙しいところありがとうございました。

お礼日時:2006/12/28 02:41

わたしのマシン(WindowsXP、IE6 SP1)では、「×」ボタンや、タスクバーを右クリック→閉じる場合は処理が実行されます。



記述方法を確認してみてください。

<BODY bgColor="white" onUnload="alert('次のページに行きます')">

参考URLのサンプル1を試してみてください。

参考URL:http://www.openspc2.org/JavaScript/ref/event/onU …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

マシンによって反応したりしなかったり・・・
ということがあったので、×ボタン対応はしないことになりました。

お手数おかけして申し訳ありません。
ありがとうございました。

お礼日時:2006/12/28 02:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています