ブラウザーがイベント キャプチャとイベント バブリングをサポートしているかどうかを検出する方法はありますか? http://modernizr.com/を確認しましたが、ドキュメントに情報がありません。
IE < 9 はイベント キャプチャをサポートしていませんが、他のブラウザでは問題ないと考えているのは正しいですか?
わかりやすくするために、ブラウザーがイベント DOM モデルのイベント キャプチャ フェーズとイベント バブル フェーズをサポートしているかどうかを検出したいと思います。
ブラウザーがイベント キャプチャとイベント バブリングをサポートしているかどうかを検出する方法はありますか? http://modernizr.com/を確認しましたが、ドキュメントに情報がありません。
IE < 9 はイベント キャプチャをサポートしていませんが、他のブラウザでは問題ないと考えているのは正しいですか?
わかりやすくするために、ブラウザーがイベント DOM モデルのイベント キャプチャ フェーズとイベント バブル フェーズをサポートしているかどうかを検出したいと思います。
これにはもっと良いアプローチがあるかもしれませんが、これが私が最初に思いついたものです。要素を作成し、キャプチャフェーズでイベントハンドラーをその要素にバインドし、その要素でイベントを発生させeventPhase
、イベントハンドラーでプロパティを確認する必要があります。
var button = document.getElementById("example");
document.addEventListener("click", function (e) {
console.log(e.eventPhase); // 1 === capture, 2 === target, 3 === bubble
}, true);
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
button.dispatchEvent(evt);
おそらく、他のあらゆる種類のチェック(dispatchEvent
サポートなど)を追加する必要があり、実際にbutton
コード内に要素を作成する必要があります(そして、非表示にしてDOMに挿入します)。
これがあなたが始めるための上記のコードを含むフィドルです。