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

Chromeの返品:

Uncaught TypeError:オブジェクトonloadにはメソッド'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 に答える