2

进一步回答这个问题Failure to override Element's addEventListener in Firefox

我不想使用这里提到的外部包装器/实用程序功能。Javascript添加事件跨浏览器功能实现:使用attachEvent/addEventListener vs inline events

目标:我只是调用重写的 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);
        }
    })();
4

0 回答 0