人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScript(もしくはVBScript)を使用して、×ボタン押下時にScriptイベントを発生させたいのですが。リロードや、移動、POST時にはイベントを発生させたくありません。OnUnloadや、OnBeforeUnloadでは、×ボタン押下時以外の上記のパターンでもスクリプトが実行されてしまいます。×ボタン(ウィンドウが閉じられる)処理だけをHookすることはできないでしょうか?尚、ブラウザは、IE限定で良いです。(6以降)

●質問者: kurokw
●カテゴリ:コンピュータ
✍キーワード:HOOK IE JavaScript SCRIPT VBScript
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● free00
●0ポイント

http://localhost/

URLはダミーです。

たとえば、ウィンドウを閉じるためのイベントありますよね。それを実行したときにイベントを出るようにすればいいんじゃないですか?

◎質問者からの返答

その、閉じるボタンの時に発生するイベントが、

OnUnload、OnBeforeUnloadなのですが、質問内容にあるように他のイベントも拾ってしまうので、使えません。


2 ● sushi0
●100ポイント

http://www.hatena.ne.jp/1074247931#

JavaScript(もしくはVBScript)を使用して、×ボタン押下時にScriptイベントを発生させたいのですが。リロードや、移動、POST時にはイベントを発生させたくありません。On.. - 人力検索はてな

URLはダミーです。

IE6限定でよろしければ、(IE5も動くかもしれません。ただタブブラウザだと駄目だと思います)次のような方法があります。

function x() {

if(event.clientX<=-9000 && event.clientY<=-9000) {

処理

}

}

これを

<body onUnload=”x()”>

で呼び出すといいです。

リロードや移動だとclientXは0以上になると思います。

◎質問者からの返答

ありがとうございます!

ほぼ完璧です。

実験してみたところ、フルスクリーンからの閉じるの場合は、event.clientXが-8900程度になったため、サンプルでは駄目だったのですが、(スクリーンの解像度で値は変わる??いろいろ実験してみます)

書かれている通り、

clientXは、表示状態なら必ず0以上、×なら0以下(8900以下?)というのは確実そうなので、使えそうです。

clientYは、表示状態でも0以下はあるみたいですが、せいぜい-100程度のようで、閉じた際にはー10000程度になるようでしたので、こちらも-8900以下等に設定しておけば使用にできそうです。

ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ