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);
}
})();