无法检测窗口是否已加载

时间:2014-10-22 02:59:28

标签: javascript html5 javascript-events

我目前正在计算应用程序中已打开标签的数量。但我的问题是我的脚本似乎不会检测事件onload。这是我的代码。 我正在使用HTML5网络存储和本机js。我没有使用jQuery来理解本地js的更多信息。

(function(w) {
    function Tabz(win, key) {
        this.name = '';
        this.storageKey = key;
        if(win.name != '')
            this.name = win.name;
        else {
            var windowArr = JSON.parse(localStorage.getItem(key)) || [];
            this.name = "tabz_"+ windowArr.length; 
            win.name = this.name;
            windowArr.push(this.name);
            localStorage.setItem(this.storageKey, JSON.stringify(windowArr) );
        }
    }

    Tabz.prototype.getStorage = function() {
            return localStorage.getItem(this.storageKey);
    }

    Tabz.prototype.removeWindow = function() {
            //remove window function here
    }

    var newWindow = new Tabz(w, 'counter');
    window.load =  function() {
        var count = JSON.parse(newWindow.getStorage()).length;
        alert(count!); // this wont execute so that I can check the count.
    }

   })(window);

1 个答案:

答案 0 :(得分:4)

您的问题就在这一行:

window.load =  function() {

这将向窗口添加load属性,而不是添加事件侦听器。我想你正在寻找onload

window.onload = function() {

顺便说一下,使用事件属性被视为不良做法。使用addEventListener会更好。

window.addEventListener("load", function(){
    //Do stuff...
});