• ベストアンサー

ブラウザの×ボタン(閉じるボタン)押下時のイベントをひろいたい

javaScriptでブラウザの閉じるボタン(×ボタン)を押したときに、functionを走らせたいのですがうまくいきません。onunloadで以下の処理を行っています。 if(event.clientX <= -8980 && event.clientY <= -9000 || event.clientX >= 32700 && event.clientY >= 32700) {  //ブラウザ閉じられたときの処理 } 閉じるボタンを押してなくても走ってしまったり、不安定なのですが、×ボタン押下時のイベントの拾い方をどなたかご教授ください。よろしくお願いします。

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

  • ベストアンサー
  • ponianius
  • ベストアンサー率100% (1/1)
回答No.1

すでにお気づきかも知れませんが、下記URLの掲示板にヒントが載ってました。 WSH利用者さんのソースが、なかなか良いみたいです。 -- 以下、引用 -- function window.onbeforeunload() {   if(((event.clientX > document.body.clientWidth) && (event.clientY<0)) || event.altKey){     閉じたときの処理();   } } -- --

参考URL:
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=559017&SiteID=7

関連するQ&A

  • FireFoxでブラウザーと閉じる時に特定の処理を実行したいのですが良い方法を教えてください。

    ブラウザーを閉じる時に特定の処理をWebページ内で実行したのですが、FireFoxでは可能でしょうか? IEでは、下記のロジックで対応することが出来ました。 window.onunload=function() { var x=window.event.clientX,y=window.event.clientY; var w=document.body.clientHeight; if (y<0 &(w-5)<x || x<15) { alert('IEを閉じます。'); } }

  • Java変数にJavascript変数を代入したい

    いつもお世話になっております。 ブラウザを閉じるときだけ走らせたいJAVAの処理があります。 そのため、JavascriptとJAVAの変数を混合させて、処理の起動条件を制御しようと思いついたのですが、 JAVAの変数にJavascriptの変数を入れることができません。 以下のソースの★の部分が分かりません。 function window.onbeforeunload() { if(((event.clientX > document.body.clientWidth) && (event.clientY<0)) || event.altKey){ var flag = 0; <%! int flag %> = flag; ★ <% if(flag == 0){ Cache cache=Cache.getInstance(); cache.clear(); } %> alert("閉じます"); } } 何か良い方法が有りましたら、御教授宜しくお願いいたします。

  • F2+Ctrl押下時のイベント記述方法

    VB6を使用しています。 F2+Ctrlを同時に押下した場合の処理の記述がうまくいきません。 Form_KeyDownイベントで下記のように記述しようと考えたのですが、KeyCodeに17が入ってしまいうまくいきません。 アドバイスをお願いします。 ----------------------- select case KeyCode  case vbKeyF2   If Shift = 2 Then   'Ctrl+F2押下時   ***処理   End If ※他のファンクションボタンの処理もあるのでcase文にしています。

  • ブラウザの×ボタン検出

    こんにちは、みなさま ブラウザの閉じるボタン(右上隅×ボタン)を検出したく、javascriptで、以下を書きました。 window.onbeforeunload = function(event) { event = event || window.event; event.returnValue = "【警告】\nWebブラウザの閉じるボタンが押下されました。"; event.returnValue += "\n\nよろしいですか???? "; } Google Chromeで、次のようなモンダイに行き当たりました。 1.全画面1ページなら、問題なく動きます 2.ところが<FRAMESET>で分割したフレームに開いたページでは、全く動作しないらしく、いきなり閉じてしまいます。 IE10なら、上記1.2.ともに期待どうりに動きます。 このことについて、ご教示いただければ幸いです。

  • ブラウザの「戻る」ボタンを押した時にリロードさせる

    ブラウザの「戻る」ボタンを押して前のページに戻った時に1回だけページを リロードさせたいのですが、IEでは下記のようにすれば上手く出来ました。 <script type="text/javascript"> <!-- window.onunload = function(){location.reload();} --> </script> しかしながら、上記では他のブラウザ(Firefox・Opera・Safai・Google Chrome等)では リロードされません。 全てのブラウザで上手くリロードさせる方法はないでしょうか。 宜しくお願い致します。

  • Webブラウザの閉じるボタン無効化についての質問

    お世話になります。 現在、ASP.NET(C#)にてIEブラウザの閉じる(×)ボタンを 非表示にするあるいは無効にする処理を加えようとしています。 現行では、JavaScriptのonbeforeunloadにて閉じるボタン 押下時の処理を加えています。 しかしながら、処理を加えた後閉じるボタンを押下した際に 「このページからほかのページに移動しますか?」確認MSG が表示されてしまいまして、「OK」を押下すると画面が閉じて しまいます。 IEの閉じるボタン無効化の機能が成立しません。 そこで質問としまして、 ・IEブラウザの閉じるボタン無効化 ・IEブラウザの閉じるボタン押下時に表示される  「このページからほかのページに移動しますか?」確認MSG  を非表示にする 方法がございましたら、ご教授お願い致します。

  • javascriptの条件文

    スマホにタッチした時の値を取得するスクリプトです。 よくわからないまま作成してますが、ご勘弁下さい。 <script type="text/javascript"> window.document.addEventListener("touchstart", function(event){ event.preventDefault(); var result = document.getElementById("result"); result.innerHTML = "clientX:"+ event.touches[0].clientX+ "<br>" + "clientY:"+ event.touches[0].clientY; }, true); window.document.addEventListener("touchmove", function(event){ event.preventDefault(); var result = document.getElementById("result"); result.innerHTML = "clientX:"+ event.touches[0].clientX+ "<br>" + "clientY:"+ event.touches[0].clientY; }, true); window.document.addEventListener("touchend", function(event){ event.preventDefault(); var result = document.getElementById("result"); result.innerHTML = ""; }, true); ここまでは正常。 値を取得した、Yを下記のようにしたのですが、 500以上になってもロケーションが実行されません。 間違いなく構文が間違っているのですが、数時間格闘したのですが、わからないので すみませんが、教えて頂けると有難いです。 num = event.touches[0].clientY; if (num >= "500") { location.href = "https://www.google.co.jp/"; } </script>

  • IE7での閉じるボタン等の画面クローズ処理について

    IE7で画面が閉じられたことをひろう方法を考えています。 IE6までであれば他の方の質問にもあるようにマウスの座標が 特殊値(-8900等)を返すためこの値で判断できるのですが、 IE7になってからは「×」ボタン押下、右クリック「閉じる」、 「Alt+F4」、「Ctrl+W」、左上のアイコン?のダブルクリック等 マウスの座標に正常値が返ってくるようで、うまく閉じられたことを ひろうことができません。 clientYがマイナス値を返すようなので、 if(clientX>0&&clientY<0){} if((event.altKey) ||(event.ctrlKey)){} 等を考えているのですが、右クリック「閉じる」が上記の方法では、 判断ができません。 また、  if(clientX>document.body.clientWidth&&    (clientY<0||event.altKey)){  } も試してみたのですが、画面を開く際に作業領域全体にリサイズを 行っているので、「X」の値が最小化から閉じる以外は、 clientWidthよりも大きくなることはないようです。 他に、もしマウスが画面外にあった際に、「Enter」キーで画面 遷移(Submit)を行った場合に処理が走ってしまう可能性があります。 画面を閉じることについては以前より考えられていますが、 何かよい方法がないでしょうか? やはり仕様で禁止しかないですかね・・・ ちなみに現在試していることは、親画面の存在を 常に確認する画面を出しておいて親画面がなくなったら 処理を行う方法を考えています。

  • IEの最大化ボタン押下時のイベント

    お世話になっております。 現在ページ内にdivタグを使用し擬似フレームを作成しているのですが、IEの最大化ボタンを押下した場合それに合わせてdivのサイズを広げたいと思っています。IEの最大化ボタンを押下した際のイベントを取得する方法がありましたらご教授願います。

  • ブラウザの×(ばつ)ボタンについて。

    質問です。 ブラウザの×ボタンを押下した場合、どのような処理が走るのでしょうか?それはwindows.closeと同じですかね? また、×ボタン押下時に新たな処理を加えることはできるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう