Javascript 无法检测窗口是否已加载

Javascript 无法检测窗口是否已加载,javascript,html,javascript-events,Javascript,Html,Javascript Events,我目前正在计算我的应用程序上打开的标签的数量。但我的问题是,我的脚本似乎无法在加载时检测到事件。这是我的密码。 我正在使用HTML5Web存储和原生js。我并没有使用jQuery来理解关于原生js的更多内容 (function(w) { function Tabz(win, key) { this.name = ''; this.storageKey = key; if(win.name != '') this.na

我目前正在计算我的应用程序上打开的标签的数量。但我的问题是,我的脚本似乎无法在加载时检测到事件。这是我的密码。 我正在使用HTML5Web存储和原生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);

您的问题在这一行:

window.load =  function() {
这将向窗口添加
load
属性,而不是添加事件侦听器。我想您正在寻找
在线加载

window.onload = function() {
顺便说一句,使用事件属性被认为是不好的做法。使用会更好

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

您的问题在这一行:

window.load =  function() {
这将向窗口添加
load
属性,而不是添加事件侦听器。我想您正在寻找
在线加载

window.onload = function() {
顺便说一句,使用事件属性被认为是不好的做法。使用会更好

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

可能是因为加载甚至发生在函数执行之前。既然这一切都是在页面加载时执行的,为什么不删除“window.load=function(){}”并将警报计数放在主函数中呢?可能是因为加载甚至发生在函数执行之前。既然这整个过程都是在页面加载时执行的,为什么不删除“window.load=function(){}”并将警报计数放在主函数中。谢谢,我应该使用onload而不是load,现在它可以工作了。@frenchie:只有在加载其他所有内容后,他侧加载脚本时才会发生这种情况,这似乎不是事实。@AlexanderO'Mara你真的知道这是怎么回事。你能给我介绍一下如何学习本地js吗?我做了3年的php程序员,慢慢地转向javascript和node。我真的很难受,因为javascript是异步的,而php不是,我习惯于MVC结构,javascript更注重原型设计。@AnthonyLloveras:我总是喜欢文档。自从我学习JavaScript已经很多年了,但这也是一个很好的学习资源。谢谢,我应该使用onload而不是load,现在它可以工作了。@frenchie:只有在其他东西加载之后他侧加载脚本才会发生这种情况,但事实似乎并非如此。@AlexanderO'Mara你真的知道这是如何工作的。你能给我介绍一下如何学习本地js吗?我做了3年的php程序员,慢慢地转向javascript和node。我真的很难受,因为javascript是异步的,而php不是,我习惯于MVC结构,javascript更注重原型设计。@AnthonyLloveras:我总是喜欢文档。我学习JavaScript已经很多年了,但它也是一个很好的学习资源。