javascript anulando addEventListener y haciéndolo cruzado navegador

Ampliando la respuesta a esta pregunta Error al anular addEventListener de Element en Firefox

No quiero usar la función de envoltura/utilidad externa mencionada aquí. Implementación de funciones de navegador cruzado para agregar eventos de Javascript: use attachEvent / addEventListener vs eventos en línea

Objetivo: simplemente llamo a la función anulada addEventListener para mantener las cosas simples y debería manejar las diferencias entre navegadores dentro de sí mismo o por favor avise.

Edité el código, ¿cómo podemos lograr la funcionalidad de navegador cruzado dentro de esta solución?

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

preguntado el 03 de mayo de 12 a las 11:05

No es una respuesta, pero no deberías hacer esto. Vea por qué en stackoverflow.com/questions/3826599/… -

Stack Overflow no es un servicio de codificación. Si tienes un pregunta, no dude en hacer esa pregunta. Esto no es una pregunta. stackoverflow.com/faq -

Por separado, tenga en cuenta que usted podrá extender los prototipos de elementos DOM en IE. puedes extender elementos individuales, pero es increíblemente fácil tener una ruta de código en la que se olvide de extender uno y, por lo tanto, obtenga un error cuando intente usar addEventListener en eso. (Ves esto con la biblioteca Prototype todo el tiempo). Entonces, con el debido respeto, solo debes lidiar con el uso de un contenedor. -

gracias por los comentarios, después de mirar el enlace del Dr. Molle, tiene sentido no hacerlo y, en cambio, adoptar el enfoque de envoltura. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.