• 締切済み

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