ブラウザで×ボタンイベントが拾えない話

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する操作だと、×ボタンを押さなくても発動する気が・・・

うーん、なんとか×ボタン押下イベントを拾うロジックを組めないものか。