【问题标题】:window.onload not working after page load chrome dev console页面加载chrome dev控制台后window.onload不起作用
【发布时间】:2018-05-06 19:22:50
【问题描述】:

window.onload 似乎没有在 chrome 控制台中运行指定的函数,我似乎找不到任何有解决方案的人。

代码:

function preStart() {
    console.log("Hello");
}
window.location = 'https://www.google.com/';
window.onload = preStart;

运行时 window.location 成功运行但“preStart”没有。 我意识到window.onloadwindow.location 之后不起作用,但是有解决方案吗? (页面加载后函数运行的地方)

由于我对 JavaScript 比较陌生,请解释任何答案/解决方案。

对此的任何帮助我将不胜感激。

【问题讨论】:

    标签: javascript google-chrome console window.location


    【解决方案1】:

    您基本上是将 preStart 函数传递给 window.onload 方法。

    我发现初学者 javascript 开发人员对 preStart 和 preStart() 函数之间的区别存在一些误解。

    在某些情况下是这样的:

    SetTimeout(function(){
    
    }, 2000)
    

    您可以像上面那样直接将函数传递给 SetTimeout,因此如果您的 preStart 有一些您想在 2000 秒后执行的逻辑,您可以:

    SetTimeout(preStart,2000)
    

    您可以看到函数 preStart 是直接传递的,没有 '()' 它不需要调用,因为 SetTimeout 期望该函数。

    在你的情况下,你想在 windows.load 上执行 preStart,所以你需要 '()' 来执行它。

    所以做这样的事情:

    function preStart() {
        console.log("Hello");
    }
    window.location = 'https://www.google.com/';
    window.onload = preStart();
    

    对不起,如果我做了一个曲线来解释这个问题,但我希望它有所帮助。

    【讨论】:

    • 答案末尾的代码在更改页面之前运行preStart。我还尝试将setTimeout 与以下代码一起使用:function preStart() {console.log("Hello");}; window.location = 'https://www.google.com/'; setTimeout(preStart,2000); 虽然setTimeout 成功启动,但它的功能是在页面加载后启动永远不会启动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2017-11-14
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多