• ベストアンサー

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

ウインドのタイトルバー右上にある「×」が押されてウインドウが閉じられる 場合というのは取得できるでしょうか? 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

  • OnClickで開いた後のタイトルバー

    お世話になっております。早速ですが教えていただきたいことがあります。 「OnClick=window.open」で別のウィンドウを開いたとき、タイトルバーに必ず、 (サーバー名)- (そのページのタイトル) という風に表示されます。<title>タグをどんなに変えても、頭の(サーバー名)は必ず付いてきます。 これを消す方法をどなたかご存知ではないですか? 最悪の場合、タイトルバー自身が消えてしまっても構いません。windows.closeのボタンをつけますので、対処可能です。 どうぞ宜しくお願い致します。m(__)m

  • ウインドウのタイトルバーの変更

    Mac os9,dreamweaver4を使用してHPを作っています。 JavaScriptで、別ウインドウが開くように設定しました。 ウインドウは開くのですが、 windowsで見た場合だけ、タイトルバーのところにアドレスが表示されてしまいます。 Macで見ると、<title>○○○</title>の部分が表示されます。 windowsで見ても、アドレスではなく、○○○の文字を表示するようにしたいのですが これは、何か設定があるのでしょうか? よろしくお願いします。

  • マウスがタイトルバーにのるとタイトルバーがアクティブになる

    OSはwindowsXPですが、マウスをウィンドウにポイントをあわせるだけで、タイトルバーがアクティブになってしまうようになってしまったのですが、通常通りマウスをウィンドウでクリックしてアクティブにするにはどうしたら戻るのでしょうか? ちなみに、マウスのポイントをあわせて、タイトルバーがアクティブになっても、ウインドウは前面には表示されません。 お分かりの方がいらっしゃいましたら、教えて下さい。

  • window.open()でタイトルバー非表示にする???

    window.open()関数の第3引数では、ツールバー・ステータスバー などの表示/非表示や、サイズ指定などできますが、 タイトルバーを非表示にさせたり、ウィンドウ右上にある ウィンドウの最小化・最大化・閉じるボタンを表示させない ようなことは可能なのでしょうか? もし可能な場合は、方法(引数の記述)を教えてください。 よろしくお願いします。

  • メインウィンドウのタイトルバー

    APIでメインウィンドウのタイトルバーを表示しないようにできるのでしょうか? タイトルバーは画面サイズを大きくすると相対的に小さくなるので不便しています。 できたらタイトルバーを止めて自分で上方に自作のタイトルバーをeditコントロールやstaticコントロールあたりで作りたいのです。 そうすると上のタイトルバーは不要になるのではじめからタイトルバーが付いていないメインウィンドウを作りたいのです。 よろしくお願いします。

  • タイトルバーの変更

    例えばタイトルバーが"abc"というウィンドウがあったとして、そのウィンドウのタイトルバーを"aaa"という風に変更したいのですが、やり方がわかりません。ご教授の方、よろしくお願いします。 ちなみに開発環境はVC++です。

  • アクティブウィンドウのタイトルバー、スクロールバー等を消すには?

    JavaScriptのwindow.open命令で行き詰まっています。 ご教授下さい。 やりたいことは 一番最初に読み込まれるindex.html等のファイルの スクロールバーやタイトルバー、ツールバー、ステータスバーを消したいのです。 しかしJavaScriptのwindow.open()の命令では _self や _parent指定だと スクロールバーやタイトルバーが消えませんでした。_blank で開くと うまくいくのですが、元のウィンドウを消す(window.close())を使うとIEの セキュリティーメッセージが表示されてしまいます。 これを新しいウィンドウを開かずに、今開いているウィンドウに対して スクロールバーやタイトルバー、ツールバー、ステータスバーを消すには どうしたら良いのでしょうか? 宜しくお願いします。

  • C#で自分のウインド・ハンドルを取得するにはどうすればよいのでしょうか

    C#を勉強中のものですが、教えて下さい。 タイトル通りですが、自分自身のウインドハンドルを取得する方法はあるのでしょうか?

  • CLaunch、タイトルバーが変わりません

    関係無いかも知れませんが OSはビスタで『CLaunch』の3.10を使用してるんですが 実はパソコンの不具合で修理に出し、最近帰って来ました それで、修理に出す前は タイトルバーに複数の項目を入れてたんですが そのバーが自然(?)に3段位に増えてました そして、修理に出す前にバックアップ…これは デザインと設定の両方をバックアップし 返って来てから復元しました しかし、項目等は正常に復元されてるんですが タイトルバーが1段しか出てないんです そのタイトルバーと言うのは このHPの『フリーソフト』と『お仕事へGO』の項目の事です http://pub.ne.jp/mountm/?entry_id=1741129 従って、タイトルバーを全て表示させる為には サイドを横に引っ張らないと表示が出ないんです これは、どういしたら良いんでしょうか?

  • タイトルバーの色

    Windows11です Microsoft edgeではタイトルバーとタスクバーは濃い緑でアドレスバーは白です。(自分で選んだ色です) ところが、Google Chromeではタスクバーは濃い緑ですが、タイトルバーが水色でアドレスバーは薄い水色です。こちらは意識して自分で選んではいません。 Google ChromeもMicrosoft edgeと同じ色にする方法を教えて下さい。

専門家に質問してみよう