2

この質問への回答を進める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);
        }
    })();
4

0 に答える 0