• ベストアンサー

閉じる際に子ウィンドウでダイアログを出す。

 現在、親ウィンドウから子ウィンドウをだした際に、ウィンドウ上の右上にある「×」を押すと確認メッセージなしにすぐに閉じてしまいます。  どうにかして、使ってる人が閉じる際に確認するようにしたいのですが・・・  JavaScriptで <body onbeforeunload="return '確認メッセージ'"> とやると画面遷移した際にもでてしまうんです。 どうにかならないでしょうか?

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こちらを参考にしてはいかがでしょうか?

参考URL:
http://www.hatena.ne.jp/1074247931
TENEHT
質問者

お礼

回答ありがとうございます。 処理を入れて試してみたのですが、 event.clientXは完全にブラウザ自体が閉じた後に発生するイベントのため、閉じた後にメッセージが出る形になってしまいました。  なんとかして「×」で閉じる前にアラートをだしたいのですが・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 子ウィンドウから子ウィンドウ

    子ウィンドウから文字をクリックして、 同じ大きさの子ウィンドウを開かせたいのですが、 下記のJavaScriptでは子ウィンドウが開きません。 子ウィンドウから子ウィンドウを開かせるには どのようにしたらいいのでしょうか? ご回答宜しくお願い致します。 head内は、 <script type="text/javascript"><!-- function subwin(file){ window.open(file,"subwin","resizable=1, width=600, height=500, scrollbars=yes"); } //--></script> body内の呼び出し部分は、 <a href="ファイルのURL" onclick="subwin('ファイルのURL'); return false;">

  • 子ウインドウを閉じたい

    お世話になります。 cgiアプリを組んでいます。 あるwindow(Awin - gmn00表示)が、ある画面(gmn01)を表示した際に、subwindow(Bwin)を開きました。 で、Awinが前の画面に戻ったときに、Bwinをcloseしたいのです。 Awinのgmn01には、戻るボタンがあり、戻るボタン処理でBwinをcloseすれば 当然閉じます。 ただ、それ以外にも異常系をふまえると、画面が戻る条件はたくさんあるので、 gmn00の初期処理などで Bwinが存在したら、Bwinをclodeするように試しましたが、 gmn00で、Bwinのオブジェクトが取得できません。 null になってしまいます。 なんかゴチャゴチャ書いてしまいましたが、わかっていただけますでしょうか。 ようするに、画面遷移先で開いた子ウィンドウは、遷移先が表示されている時だけ必要なので 別の画面に遷移した場合は、子ウィンドウは閉じたいのです。 やはり、遷移先の画面で、他の画面に遷移する箇所全てで 子ウィンドウのcloseをしないとダメでしょうか? アドバイス、よろしくお願いします。

  • 親ウィンドウから子ウィンドウの子ウィンドウを閉じたい

     親ウィンドウから子ウィンドウを開き、 その子ウィンドウで子ウィンドウ(孫ウィンドウ?)を開きます。 その状態で、親ウィンドウの画面移動で、子ウィンドウと孫ウィンドウを閉じたいのですが、できません。 JavaScript1--  ssWin = window.open('---'); ---- JavaScript2--- if(ssWin != null){ if (!ssWin.closed){ssWin.close(); }} ------ 子ウィンドウまでは上記の方法で閉じれるのですが、孫ウィンドウの制御となると、どうやったらいいかわかりません。  どなたかすいませんが、いい方法がありましたら、ご教授くださいませ。

  • モーダルダイアログウィンドウの改修方法

    現在メンテナンスを担当しているWebアプリが モーダルダイアログウィンドウ(showModalDialog)を多用しています。 このシステムは画面は jsp と javascript で、後ろはJavaです。 特に、伝票の入力処理では各行の商品IDを入力するときにモーダルダイアログウィンドウ が開いて商品一覧が表示され、その中から商品を選択すると親画面に戻って商品情報が 表示される、という仕組みになっています。 親画面自体は開かれたままなので、画面遷移の考慮をしないで済む、という点では シンプルなプログラムになっています。 ところがこの「showModalDialog()」、ブラウザによって若干挙動が異なったり、 将来廃止されるらしい、とのことで改造を迫られています。 モーダルダイアログウィンドウを使わない設計がいいとは思うんですが、 どのような仕組みに変えた方がよいでしょうか。 例えば画面遷移で商品を選択して戻るような仕組みにすると、途中まで入力した伝票情報を すべて保持したまま遷移しなければなりません。 どのような仕組みがよいかご意見をお願いします。

  • 新しい子ウィンドウを開くと古い子ウィンドウのすぐ上に表示されるようにしたい。

    Javascript初心者です。わかりやすく具体的に教えてください。 親ウィンドウから画像1、画像2にリンクを張り、それぞれ子ウィンドウとして開きます。 現在はつぎのようにしています。 <script type="type/javascript"> function wopen1{ window.open('画像1のURL','new1',scrollbars=no,resizable=no,width=420,height=280');} function wopen2{ window.open('画像2のURL','new2',scrollbars=no,resizable=no,width=300,height=450');} </script> <body> <a href="#" onClick="wopen1()">画像1</a> <a href="#" onClick="wopen2()">画像2</a> </body> これだと画像1を開いた後に画像2を開くと階層的(レイヤー的?)に上から順に「画像2の子ウィンドウ>親ウィンドウ>画像1の子ウィンドウ」と表示されます。 これを「画像2の子ウィンドウ>画像1の子ウィンドウ>親ウィンドウ」の順で表示されるようにしたい。 また、画像2を開いた後に画像1を開く場合は同様に「画像1の子ウィンドウ>画像2の子ウィンドウ>親ウィンドウ」となるようにしたい。 どうしたらよいでしょうか? よろしくお願いします。

  • ダイアログ内での遷移方法

    親ウィンドウのリンクからJavaScriptのshowModalDialogでダイアログを表示する画面を作成しているのですが、表示したダイアログの画面にもリンクがあってダイアログ内で遷移してほしいのですが、別ウィンドウが開いてそちらの方に画面が表示されてしまいます。 JavaScriptのshowModalDialogやreturnValueで試しているのですがどうもうまくいきません。 何か方法をご存知の方いらっしゃいませんでしょうか? よろしくお願い致します。

  • 親ウィンドウを切り替えたときの子ウィンドウの閉じ方

    画面Aから画面BをsubName = window.openで開き親子の ウィンドウが開いている状態で画面Aを画面Cに遷移させます。 この後で画面Cから画面Bを閉じる方法がわかりません。 画面A(親)⇒ 画面C(親?) | 画面B(子)

  • 子ウィンドウの操作

    処理概要:親ウィンドウからボタンクリック時にjavascriptのみで      子ウィンドウを作成し、遷移させた後、子ウィンドウの      フォームをサブミットする。 -------以下ソース-------- var url = "/index.html"; hWin=window.open("",""); window.hWin.location.href=url; setTimeout(a,10000); function a(){ window.hWin.document.form.submit(); // window.hWin.document.form.name.value = "住友"; // window.hWin.document.form.button1.click(); }  * index.html にはformというフォームがあり、nameという   テキストボックスとbutton1 というボタンをフォーム内に   持っているとします。 以上のような簡単なものですが、7行目のsubmitでこけます。 window.hWin.document.formがないようでヌルポになります。 親から子ウィンドウのサブミットをjavascriptだけで制御 できないでしょうか。 また、できればコメントアウトしているところ、 DOM要素を指定して値をテキストボックスに入れたり フォームをボタンによりクリックしてサブミットもしたいです。 ちなみに、setTimeout を利用しているのは、遷移が終わり、子ウィンドウの要素が確実に作成されている状態にするためです。 また、遷移先にSSLを設定している部分と設定していない部分があり、javascriptの途中で"ここに遷移していいですか?"みたいなダイアログが表示されます。"混雑しているページの処理"をインターネットオプションから"有効"にする(ダイアログを表示するではなく)と表示されないのですが、奨励されないので 他にいい方法はないでしょうか。

  • 子ウィンドウ先でstyle.display

    親ウィンドウから子ウィンドウを開く際、子ウィンドウ先でstyle.displayを使って答えを開くようにしたいと思っています。 下記のような構成で作ったのですが、子ウィンドウ先のdocumentを認識してくれない時もあるようで、答えが開く時もあれば、開かない時もあり対処を知りたいと思っています。 *** 親ウィンドウ *** <script language="JavaScript"> <!-- function OpenAns () { mywin = window.open("aaa.html", "x", ""); mywin.document.getElementById("id1").style.display="inline"; } // --> </script> <a href="javascript:void(0)" onclick="OpenAns();">答え</a> *** 子ウィンドウ *** <body> ... <span id="id1">答えです。</span> ... </body>

  • 親ウィンドウと同時に子ウィンドウを閉じる

    お世話になります。 親ウィンドウからjavascriptにて子ウィンドウを開き、親ウィンドウが 閉じられたら子ウィンドウも閉じると言う処理をしております。 別サーバーにある画面を子ウィンドウとして開いた場合、閉じることができません。 これは、javascriptの仕様でしかたが無いのでしょうか? それとも、別なやり方があるのでしょうか? 1)同一サーバーにある別サイト  同一サーバーにある別サイトを子ウィンドウとして開いた場合、親ウィンドウから  閉じることが可能 2)別サーバーにあるサイト  別サーバーにあるサイトを子ウィンドウとして開いた場合、親ウィンドウから  閉じることができない 環境  Windows2000ServerSP4  IIS5.0  ASP+javascript 親画面  http://pcxxx/siteP/sample.html  同一サーバーの別サイトを開く場合   win = window.open('http://pcxxx/siteA/sample.html', 'newwin');  別サーバーのサイト   win = window.open('http://pcyyy/siteB/sample.html', 'newwin'); どなたかご存知でしたらお教え下さい。 宜しくお願い致します。