Hola quiero sobrescribir addEventListener en todos los objetos de modo que no tenga que llamar a AttachEvent por separado:
addEventListener = function(){
if(this.attachEvent){return this.attachEvent('on' + arguments[0]);}
return Object.getPrototypeOf(this).addEventListener.apply(this,arguments);
}
Esto seguramente no funcione y si funciona solo reemplazara el addEventListener de window.
Alguna idea?
Un saludo
@Edit: Ya se que puedo crear una función aparte y pasar como primer parámetro el objeto pero no es lo que quiero hacer.
Prueba sobreescribiendo el prototipo de la funcion en caso de que no esté disponible:
(function(){
if (!window.addEventListener) {
var addEventListener = function(type, handler) {
var that = this;
this.attachEvent('on' + type.toLowerCase(), function(){
handler.call(that, window.event);
});
}
Window.prototype.addEventListener = addEventListener;
HTMLDocument.prototype.addEventListener = addEventListener;
Element.prototype.addEventListener = addEventListener;
}
})();
En IE8 cuando intenta llamar al handler con call devuelve este error: El objeto no acepta esta acción