電子書籍の厳選無料作品が豊富!

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)を行った場合に処理が走ってしまう可能性があります。

画面を閉じることについては以前より考えられていますが、
何かよい方法がないでしょうか?
やはり仕様で禁止しかないですかね・・・

ちなみに現在試していることは、親画面の存在を
常に確認する画面を出しておいて親画面がなくなったら
処理を行う方法を考えています。

A 回答 (1件)

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

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

質問の一番最後の部分に記述した内容が、
親画面から「onunload」で小画面を開き
小画面の処理ではご回答いただいたように、
「window.opener.closed」で親画面の存在を確認し、
画面遷移か閉じられたかを判断して処理を入れています。

この場合だと、うまく行っているように思えるのですが、
画面遷移のたびに新しい画面を開いて親画面の存在を確認
しているので、レスポンスが微妙に落ちてしまうのが
気にかかっているところでして・・・
画面遷移のたびに新しい画面を開くのは、なるべくタスクバーに
表示をしたくなかったので開いて閉じてを繰り返してます。

お礼日時:2007/08/02 20:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!