重新加载页面后我可以运行javascript代码吗?
在我的情况下,我想通过javascript: <<CODE>>
多次重新加载页面并检查是否存在具有特殊ID的按钮并单击它。这是我的代码:
function check () {
if(new Date().getTime >= 1442949420000) {
var loginbtn = document.getElementById('loginbutton');
if(loginbtn){
loginbtn.click();
} else {
console.log('button not yet here - reload');
window.location.reload();
check();
};
} else {
console.log('to early - reload');
window.location.reload();
check();
};
};
check();
问题是,页面在window.location.reload()
之后重新加载并且check()
函数永远不会被调用,因此页面只会重新加载一次。
还是有服务,将我的脚本注入网址?
答案 0 :(得分:8)
您可以将URL片段添加到地址栏,然后重新加载页面。因此,在重新加载之前,您将在http://yoursite.com/yourPage
,并且在重新加载后,您可以在http://yoursite.com/yourPage#reload
。以下是一个简单的工作示例:
document.getElementById("clickMe").onclick = function clicked(){
window.location.hash = 'reload';
window.location.reload();
}
//When the document has loaded, call the function
document.addEventListener("DOMContentLoaded", function(event) {
if(window.location.hash == "#reload"){
console.log("The Page has been reloaded!");
}else{
console.log("The page has a new hit!");
}
});
&#13;
<button id="clickMe" type='button'>click</button>
&#13;
单击该按钮时,哈希将添加到窗口位置,然后重新加载页面,并附加URL片段。然后我决定在文档就绪功能中是否已重新加载页面。确保在本地测试。
答案 1 :(得分:0)
如果要从浏览器控制台运行代码,另一种方法可以是:
示例:
function check() {
var newwindow = window.open('https://yoursite.com', 'WindowTitle', 'height=200,width=150');
if (new Date().getTime >= 1442949420000) {
var loginbtn = newwindow.document.getElementById('loginbutton');
if (loginbtn) {
loginbtn.click();
} else {
console.log('button not yet here - reload');
newwindow.location.reload();
check();
};
} else {
console.log('to early - reload');
newwindow.location.reload();
check();
};
};
check();
答案 2 :(得分:0)
我个人不会修改URL。如果您在单击按钮后将用户发送到另一个URL,可以这样做,但是可以保留修改后的URL,并且如果用户决定刷新该页面,则该函数将在用户每次手动刷新页面时执行。
相反,我会在重装之前设置一个sessionStorage项,如果重装后读取它,以执行该函数(如果准备好),否则,则再次重装,然后在完成后将其删除。
现在,在满足条件之前,我看不到如何多次重新加载页面是一种好习惯。为什么不使用setInterval来检查条件呢?