
親画面から子画面をポップアップ表示し、子画面に作成したボタンから(window.opener)をコールして、子画面を閉じる→親画面の処理を行う、という処理を実現しています。
ボタン押下時にJavaScriptをコールすることで処理は行えるのですが、ウィンドウの右上にある「×」ボタンや、タスクバーを右クリック→閉じるなどを行った際にも同じような処理を行うことはできるのでしょうか?
「画面が閉じられた」というトリガーにて処理を行うことができるのでしょうか?
onUnloadイベントを試しましたが、「×」ボタンや、タスクバーを右クリック→閉じる場合は処理がおこわなわれませんでした。
よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
基本的に、ブラウザを直接閉じた場合は
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になってしまうのが難点ですが・・・
No.2
- 回答日時:
わたしのマシン(WindowsXP、IE6 SP1)では、「×」ボタンや、タスクバーを右クリック→閉じる場合は処理が実行されます。
記述方法を確認してみてください。
<BODY bgColor="white" onUnload="alert('次のページに行きます')">
参考URLのサンプル1を試してみてください。
参考URL:http://www.openspc2.org/JavaScript/ref/event/onU …
回答ありがとうございます。
マシンによって反応したりしなかったり・・・
ということがあったので、×ボタン対応はしないことになりました。
お手数おかけして申し訳ありません。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ブラウザの×ボタン(閉じるボタン)押下時のイベントをひろいたい
JavaScript
-
ブラウザの右上にあるボタンを消すには?
HTML・CSS
-
子画面を自動で閉じた後、親画面を再描画するJavaScriptが・・・・
JavaScript
-
-
4
ブラウザの×(閉じる)ボタンのイベントを拾いたいのですが
Java
-
5
JavaScriptで ブラウザの閉じるを無効化に
JavaScript
-
6
子ウィンドウの「閉じる(×)」で親ウィンドウも一緒に閉じる方法
JavaScript
-
7
子ウィンドウから親ウィンドウへ値を受け渡す
Microsoft ASP
-
8
Webブラウザの閉じるボタン無効化についての質問
JavaScript
-
9
閉じた後のwindow.closed検知
JavaScript
-
10
Javascript_submit()完了後に処理したい
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[Java] Edgeでのアドレスバー非...
-
Javascript使用時に画面にキャ...
-
window.close()?でエラー
-
サブウィンドウを常に最前面に...
-
window.open("about:blank")
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
スクリプトって、何ですか?ど...
-
マイページはどこを開くの
-
Edge Chrom などの超初心者質問...
-
Outlookでこのような表示がされ...
-
小さな表示窓の呼び方は
-
Excel操作 ウィンドウで出した...
-
複数の画像を横にスクロールさ...
-
PDFを(htmlのように)無限に縦...
-
【Android】ユーザー補助機能ボ...
-
Javascript_submit()完了後に処...
-
Youtubeのバグ
-
TikTokLiteの自動スクロールの...
-
Outlookのエラー表示について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Java] Edgeでのアドレスバー非...
-
ブラウザ Chromeを使っていて、...
-
同じページをブラウザで複数開...
-
window.open("about:blank")
-
画面を閉じる(×ボタンやタスク...
-
opener.focus();が利かない
-
サブウィンドウを常に最前面に...
-
物理の斜方投射で目盛りに数値...
-
alertの最前面表示
-
子画面を自動で閉じた後、親画...
-
「処理中」表示
-
呼び出されたページを閉じ、呼...
-
物理の斜方投射の目盛り線とx軸...
-
ポップアップウインドウの高さ...
-
window.open でなくて 新しいウ...
-
window.open()で幅指定の際、ウ...
-
リロードさせないワザ
-
親ウインドのASPをリロードさせ...
-
閉じた後のwindow.closed検知
-
ホームページビルダーでウイン...
おすすめ情報