Sobrescribir addEventListener en todos los objetos

Iniciado por patilanz, 30 Diciembre 2015, 15:42 PM

0 Miembros y 1 Visitante están viendo este tema.

patilanz

Hola quiero sobrescribir addEventListener en todos los objetos de modo que no tenga que llamar a AttachEvent por separado:
Código (javascript) [Seleccionar]
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.

BlackM4ster

Prueba sobreescribiendo el prototipo de la funcion en caso de que no esté disponible:
Código (javascript) [Seleccionar]
(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;
    }
})();
- Pásate por mi web -
https://codeisc.com

patilanz

En IE8 cuando intenta llamar al handler con call devuelve este error: El objeto no acepta esta acción