Window.captureEvents()

非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

非標準: この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

Window.captureEvents() メソッドは、指定した種類のすべてのイベントをキャプチャするように、そのウィンドウを登録します。

構文

js
window.captureEvents(eventType);

eventType は、 Event.ABORT, Event.BLUR, Event.CLICK, Event.CHANGE, Event.DBLCLICK, Event.DRAGDDROP, Event.ERROR, Event.FOCUS, Event.KEYDOWN, Event.KEYPRESS, Event.KEYUP, Event.LOAD, Event.MOUSEDOWN, Event.MOUSEMOVE, Event.MOUSEOUT, Event.MOUSEOVER, Event.MOUSEUP, Event.MOVE, Event.RESET, Event.RESIZE, Event.SELECT, Event.SUBMIT, Event.UNLOAD の値の組み合わせを取ります。

html
<!doctype html>
<html lang="en">
  <head>
    <!-- ... -->
    <script>
      function reg() {
        window.captureEvents(Event.CLICK);
        window.onclick = page_click;
      }

      function page_click() {
        alert("ページクリックイベントが検出されました!");
      }
    </script>
  </head>

  <body onload="reg();">
    <p>click anywhere on this page.</p>
  </body>
</html>

ユーザーの操作によって DOM 内で発生したイベント (ボタンのクリックや現在の文書からのフォーカス移動など) は、通常、イベントを開始したオブジェクトに到達する前に、まず高レベルの windowdocument オブジェクトを通過します。

windowcaptureEvents() メソッドを呼び出すと、指定した種類のイベント (例えば Event.CLICK) は、階層内の「下位」オブジェクトに通過しなくなります。イベントを通常のように「バブルアップ」させるためには、 window.releaseEvents() ( 非推奨 ) を window 上で呼び出し、イベントをトラップしないようにしなければなりません。

なお、次の構文を使用することでこのメソッドにイベントのリストを渡すことができます。 window.captureEvents(Event.KEYPRESS | Event.KEYDOWN | Event.KEYUP).

仕様書

どの仕様書にも含まれていません。