• 締切済み

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)を行った場合に処理が走ってしまう可能性があります。 画面を閉じることについては以前より考えられていますが、 何かよい方法がないでしょうか? やはり仕様で禁止しかないですかね・・・ ちなみに現在試していることは、親画面の存在を 常に確認する画面を出しておいて親画面がなくなったら 処理を行う方法を考えています。

みんなの回答

回答No.1

window.opener.closed は参照できませんか?

jtakato
質問者

お礼

ご回答ありがとうございます。 質問の一番最後の部分に記述した内容が、 親画面から「onunload」で小画面を開き 小画面の処理ではご回答いただいたように、 「window.opener.closed」で親画面の存在を確認し、 画面遷移か閉じられたかを判断して処理を入れています。 この場合だと、うまく行っているように思えるのですが、 画面遷移のたびに新しい画面を開いて親画面の存在を確認 しているので、レスポンスが微妙に落ちてしまうのが 気にかかっているところでして・・・ 画面遷移のたびに新しい画面を開くのは、なるべくタスクバーに 表示をしたくなかったので開いて閉じてを繰り返してます。

関連するQ&A

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

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

  • 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>

  • 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("閉じます"); } } 何か良い方法が有りましたら、御教授宜しくお願いいたします。

  • IEの画面が小さくなる

    IEを起動すると画面が小さくなってしまいます。 画面右上の三つのうちの真ん中のボタンで最大化を毎回するのは面倒なのです。 マウスで画面を大きくすると縮小したい時にボタンで縮小できずマウスで小さくしか出来ないですよね。 ctri+×ボタンで終了しても駄目です。 IEアイコンを右クリックして起動時に最大化にしても駄目です。 目的は、起動時にいつも最大化、なんらかの作業をする時に縮小化ボタンで小さくする、ことが出来ればいいのですが教えてください。

  • javascriptで困っています

    マウスがブラウザーの外側から出ると、ポップアップが出るようにしたいです。 loadEvents: function() { this.addEvent(document, "mouseout", function(e) { e = e ? e : window.event; if(e.target.tagName.toLowerCase() == "input") return; var vpWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); if(e.clientX >= (vpWidth - 50)) return; if(e.clientY >= 50) return; var from = e.relatedTarget || e.toElement; if(!from) bioEp.showPopup(); }.bind(this)); 現在は、上方向に出るとポップアップが出ます。 左右にマウスが出た時に、ポップアップ出るにはどう記述すれば良いでしょうか。 よろしくお願いいたします。

  • IE8で画面スクロールがうまく行きません

    こんにちは よろしくお願いします。 先日IE6からIE8にアップデートしました。 基本的には問題なく使えていますが、ひとつだけうまく行かないことがあります。 マウスの画面スクロールボタン(右クリックと左クリックの真ん中にあるころころしたやつです)で画面を上下に移動させたときダイレクトに反応しません。1~2秒遅れて反応し、必要以上にどこまでもスクロールしてしまいます。このような反応は私のパソコンだけでしょうか?IE6は当然のことワードやエクセル等の他のアプリケーションでもそんなことはありませんでした。 どこか設定を変更すれば対応できるものなのかそれともIE8のプログラム上に問題があるのか、どなたかご教授ください。

  • 最大画面で右端画面の閉じるボタンが切れてしまいます

    Windows7 IE9です。画面最大化のF11キーで最大表示したときに画面が全体に少し右にずれるせいで、画面を閉じるのXのマークが画面からきれてしまいます。右端にマウスポインターをあててクリックすれば閉じる、の作業は有効になるのですが、このずれを修正することは可能でしょうか。 ご教示いただければ幸いです。

  • IE7には更新ボタンはないのでしょうか?

    IE6から7に変えました。 6にはページの更新ボタンがありましたが、7には見当たりません。 右クリックメニューや表示メニューからページの更新が出来るのは解りますが、マウスでワンクリックで出来るボタンが欲しいです。 設定で出せないのでしょうか? よろしくお願いします。

  • NN系でマウス座標取得

    お世話になります。 javascriptにてマウス座標を取得するファンクションを作成したいと 考えております。 そこで以下のソースでも取得可能だと思うのですが NN系でイベントが走らない場合でもマウス座標を 取得するファンクションを作成したいです。 すごく簡単なのかもしれませんが、ご教授宜しくお願い致します。 function getMouseY(e){  if(document.all) return document.body.scrollTop+event.clientY else if(document.layers||document.getElementById) return e.pageY }