- ベストアンサー
タイトルバーのウインドを閉じる(右上の「×」)押下の取得方法
ウインドのタイトルバー右上にある「×」が押されてウインドウが閉じられる 場合というのは取得できるでしょうか? closeやanLoad等使用して自分なりにもやってみましたが、 どうしてもうまく行きません。 分かる方、参考になるHP等知っている方よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと試してみたのですが、 submitを使用しますと、その後にunloadが実行されてしまうようです。 右上の閉じるボタン(以下、[x])を押した場合にもunloadが実行されてしまうようなので、 onUnloadの指定だけですと、だめです。 そこで、かなり強引な方法を思いついたので、一応書いておきます。 ---------------------------------------------------------------------- <html> <head> <title>submit</title> <script language="JavaScript"> <!-- function check(){ if(event.clientX<0) //clientXはクライアント領域(ウィンドウ)上のX座標 alert('またきてね'); } //--> </script> </head> <body onUnload="check()"> <form action="http://www.yahoo.co.jp/"> <input type="submit"> </form> </body> ---------------------------------------------------------------------- こんな感じでclientXを使用しますと、 [x]を押したときにはクライアント領域を抜けてでしまっているので、 clientXの値はマイナス値を取ります。 それを利用して、[x]を押した場合とsubmitを押した場合で、 場合わけをしてみました…。 上の例ですと、[x]を押した場合だけ、「またきてね」が表示されます。 参考になるかわかりませんが^^; IE6で動作確認。
その他の回答 (1)
- kentayos
- ベストアンサー率100% (5/5)
どうも^^kentayosです。 ページが閉じられるイベントを取得するには、 「onUnload」を使えばできます。 --------------------------------------------------------------------- <body onUnload="alert('またきてね');"> --------------------------------------------------------------------- ただし、この例だと、ページが閉じられたあとに 虚しくアラート出てしまうので、 --------------------------------------------------------------------- <body onUnload="alert('またきてね'); window.open('test.html','_blank','')"> --------------------------------------------------------------------- こんな感じにするとウィンドウを閉じつつ、 新しいウィンドウを開かせることができます。 「広告を閉じると新しいウィンドウが開く」というあれですね…
お礼
さっそくのお返事ありがとうございました。 しかし、この方法だとsubmitした場合にも処理してしまいますよね? 理由があり一枚の画面にsubmitさせているためこの方法ではちょっと・・・
お礼
お返事遅れてすいませんでした。 kentayosさん何度もありがとうございます。 とても参考になりました^^ 色々とお手数をおかけしてすいませんです。 本当にどうもありがとうございました。