【问题标题】:window.onload not working after page load in chrome developer console在 Chrome 开发人员控制台中加载页面后 window.onload 不起作用
【发布时间】:2018-05-06 21:40:21
【问题描述】:

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

代码:

function preStart() {
    console.log("Hello");
}
window.location = 'https://www.google.com/';
window.onload = preStart; //Please note, adding brackets here doesn't fix the problem

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

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

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

注意 - 我已尝试使用 setTimeout 进行以下操作,但仍然无法正常工作:

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

【问题讨论】:

  • 如果您只是测试函数,请避免在代码中进行重定向
  • @charlietfl 这适用于需要在多个网页上执行代码的大型项目。 (可能有一种我想不到的更简单的方法)

标签: javascript google-chrome console window.location


【解决方案1】:

您的 onLoad 方法很好,但您正在通过在运行之前更改 window.location 来取消它。 尝试在 preStart() 方法的末尾添加 window.location 以确保您的脚本在窗口位置更改取消之前运行:

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

此外,控制台会在新页面加载时被清除,因此即使您确实打印了“hello”,您也可能没有机会看到它。尝试使用 alert("hello") 来检查是否正在执行代码:

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

【讨论】:

  • 不起作用。无论我在其中编写代码的顺序是什么,在加载网页之前总是会执行alert("Hello")console.log("Hello")。我希望在网页加载后发生这种情况。
  • @M.P.Tree 如果您要查找的内容在onload 回调中不存在,我怀疑您正在使用javascript 处理onload 之后加载的其他内容。此时页面源的所有资源都已加载...图像、脚本、css 等
  • 调用 window.location 会卸载当前网页,并且您无法从已卸载的网页运行任何脚本,所以不幸的是,我认为一旦您无法从以前的网页运行脚本'已经加载了一个新的
  • 你可以请谷歌为你把你的功能放在他们的网站上。想想吧,伙计!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 2015-02-08
  • 2012-04-05
相关资源
最近更新 更多