- 締切済み
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)を行った場合に処理が走ってしまう可能性があります。 画面を閉じることについては以前より考えられていますが、 何かよい方法がないでしょうか? やはり仕様で禁止しかないですかね・・・ ちなみに現在試していることは、親画面の存在を 常に確認する画面を出しておいて親画面がなくなったら 処理を行う方法を考えています。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
window.opener.closed は参照できませんか?
お礼
ご回答ありがとうございます。 質問の一番最後の部分に記述した内容が、 親画面から「onunload」で小画面を開き 小画面の処理ではご回答いただいたように、 「window.opener.closed」で親画面の存在を確認し、 画面遷移か閉じられたかを判断して処理を入れています。 この場合だと、うまく行っているように思えるのですが、 画面遷移のたびに新しい画面を開いて親画面の存在を確認 しているので、レスポンスが微妙に落ちてしまうのが 気にかかっているところでして・・・ 画面遷移のたびに新しい画面を開くのは、なるべくタスクバーに 表示をしたくなかったので開いて閉じてを繰り返してます。