我想加载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的新手。上面的代码不是我的,但我只是想解决它们。我也没有声称完全理解它们。
答案 0 :(得分:0)
巴马尔指出这是不可能的。新页面加载将删除旧页面中的所有JavaScript。一些替代方案是:
您可以使用window.open
api打开新页面或新标签页并添加事件处理程序。
您可以在一个框架内加载页面(如果它没有任何限制阻止),并向框架添加一个加载事件。
您可以使用XMLHttpRequest
(或您选择的库)加载页面,并将结果插入<div>
,但并非所有这些都可能有效。
页面加载后,您没有说出要执行的操作。在大多数情况下(通常除非您拥有第二页),将无法访问第二页上的任何信息。