【发布时间】:2017-08-06 19:20:54
【问题描述】:
我想加载stackoverflow page,然后发出警报,严格一个接一个,不使用jQuery等框架。 我浏览了here 的答案,也访问了this。
我在浏览器控制台中运行了以下命令。 页面加载但未引发警报。我在 windows 8.1 中使用 chrome。
尝试#1:
window.location.href = 'https://stackoverflow.com/';
window.onload = function () { alert("It's loaded!") }
尝试 #2:
window.location.href = 'https://stackoverflow.com/';
if(document.readyState === "complete") {
//Already loaded!
window.onload = function () { alert("It's loaded!") }
}
else {
//Add onload or DOMContentLoaded event listeners here: for example,
window.addEventListener("onload", function () {/* your code here */}, false);
//or
//document.addEventListener("DOMContentLoaded", function () {/* code */}, false);
}
尝试 #3:
window.location.href = 'https://stackoverflow.com/';
var everythingLoaded = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
clearInterval(everythingLoaded);
alert("It's loaded!");
}
}, 1000);
尝试 #4:
也尝试了 setTimeout() 但也不起作用。
我也用window.location.replace() 尝试了上述示例。
我该如何进行这项工作?
P.S:我是 javascript 新手。上面的代码不是我的,但我只是想解决它们。我也没有声称完全理解它们。
【问题讨论】:
-
我认为这样的事情是行不通的。当您将另一个页面加载到窗口中时,当前页面中的所有脚本都会停止运行。
-
你的目标是什么?有些事情可能会也可能不会起作用。
-
@MarcRohloff:我的目标类似于输入用户名并在 gmail 登录页面上单击“下一步”。在要求密码的页面完全加载后,输入密码并提交。所有这些都在 javascript 中完成。单击“下一步”后,我无法发出警报。
-
我很确定 gmail 对在域中加载有限制。您可以尝试:
var popup = window.open("http://stackoverflow.com/"); popup.onload = function () { alert("It's loaded!") };,但这可能会被弹出窗口阻止程序阻止。 -
@MarcRohloff:我在其他网站上尝试过使用简单的 html 表单,但这也不起作用。
标签: javascript