JavaScript переопределяет addEventListener и делает его кросс-браузер

Продолжение ответа на этот вопрос Невозможность переопределить элемент Element addEventListener в Firefox

Я не хочу использовать внешнюю оболочку / служебную функцию, упомянутую здесь. 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);
        }
    })();

0 ответов

Другие вопросы по тегам