この質問への回答を進めるFirefox で Element の addEventListener をオーバーライドできない
ここで言及されている外部ラッパー/ユーティリティ関数を使用したくありません。Javascript 追加イベント クロスブラウザー関数の実装: attachEvent/addEventListener とインライン イベントを使用
目的: オーバーライドされた addEventListener 関数を呼び出して物事をシンプルに保ち、それ自体でクロス ブラウザーの違いを処理するか、アドバイスしてください。
コードを編集しました。このソリューション内でクロス ブラウザ機能を実現するにはどうすればよいですか
(function() {
var interfaces = [ HTMLDivElement, HTMLImageElement /* ... (add as many as needed) */ ];
for (var i = 0; i < interfaces.length; i++) {
(function(original) {
interfaces[i].prototype.addEventListener = function(type, listener, useCapture) {
// DO SOMETHING HERE
if(element.attachEvent){ //IE
arguments[0] = 'on' + arguments[0];
return element.attachEvent.apply(this, arguments);
} else { //other browsers
return original.apply(this, arguments);
}
}
})(interfaces[i].prototype.addEventListener);
}
})();