ブラウザで×ボタンイベントが拾えない話
MSDNのVisual Web Developer Express Edition フォーラムで
ブラウザの閉じるボタンについて」というスレッドが立っています。
「WSH利用者」さんが以下のコード情報を提供しています。(I.E.7で有効とのこと)
きれいではないですが、閉じる操作判定処理は次のコードで対応したことがあります。これならページ遷移時は無視されます
(どこかでみたサンプルを参考に)function window.onbeforeunload() { if(((event.clientX > document.body.clientWidth) && (event.clientY<0)) || event.altKey){ 閉じたときの処理(); } }
これって、マウスカーソルがブラウザの×ボタンよりさらに右上にある状態。つまり
- (event.clientX > document.body.clientWidth)がtrue
- (event.clientY<0)がtrue
例えば、画面上のボタンをキーボード操作でsubmitしてPostBackする操作だと、×ボタンを押さなくても発動する気が・・・
うーん、なんとか×ボタン押下イベントを拾うロジックを組めないものか。