1

此代码似乎没有正确运行:

var addEventListener = (function () {
    "use strict";
    if (document.addEventListener) {
        return function (element, event, handler) {
            element.addEventListener(event, handler, false);
        };
    } else {
        return function (element, event, handler) {
            element.attachEvent('on' + event, handler);
        };
    }
})();

addEventListener(window, 'onload', calcFailback);

铬返回:

未捕获的类型错误:对象加载没有方法“addEventListener”

Jslint 返回:

没想到别的。

有任何想法吗?

4

1 回答 1

2

您正在创建一个全局变量addEventListener,它将被添加为window. 所以window.addEventListenerelement=== window,通过这个调用)实际上是指您的自定义函数,而不是本机函数。使用不同的名称:

var myAddEventListener = (function() {
    "use strict";
    if (document.addEventListener) {
        return function(element, event, handler) {
            element.addEventListener(event, handler, false);
        };
    } else {
        return function(element, event, handler) {
            element.attachEvent('on' + event, handler);
        };
    }
})(); //<-- invoke it

也使用"load"

myAddEventListener( window, "load", function(){})
于 2012-08-07T12:25:44.577 回答