• ベストアンサー

タイトルバーのウインドを閉じる(右上の「×」)押下の取得方法

ウインドのタイトルバー右上にある「×」が押されてウインドウが閉じられる 場合というのは取得できるでしょうか? closeやanLoad等使用して自分なりにもやってみましたが、 どうしてもうまく行きません。 分かる方、参考になるHP等知っている方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kentayos
  • ベストアンサー率100% (5/5)
回答No.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で動作確認。

kaji_0131
質問者

お礼

お返事遅れてすいませんでした。 kentayosさん何度もありがとうございます。 とても参考になりました^^ 色々とお手数をおかけしてすいませんです。 本当にどうもありがとうございました。

その他の回答 (1)

  • kentayos
  • ベストアンサー率100% (5/5)
回答No.1

どうも^^kentayosです。 ページが閉じられるイベントを取得するには、 「onUnload」を使えばできます。 --------------------------------------------------------------------- <body onUnload="alert('またきてね');"> --------------------------------------------------------------------- ただし、この例だと、ページが閉じられたあとに 虚しくアラート出てしまうので、 --------------------------------------------------------------------- <body onUnload="alert('またきてね'); window.open('test.html','_blank','')"> --------------------------------------------------------------------- こんな感じにするとウィンドウを閉じつつ、 新しいウィンドウを開かせることができます。 「広告を閉じると新しいウィンドウが開く」というあれですね…

kaji_0131
質問者

お礼

さっそくのお返事ありがとうございました。 しかし、この方法だとsubmitした場合にも処理してしまいますよね? 理由があり一枚の画面にsubmitさせているためこの方法ではちょっと・・・

関連するQ&A