页面重新加载后运行JS

时间:2015-09-22 20:32:41

标签: javascript

重新加载页面后我可以运行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()函数永远不会被调用,因此页面只会重新加载一次。

还是有服务,将我的脚本注入网址?

3 个答案:

答案 0 :(得分:8)

您可以将URL片段添加到地址栏,然后重新加载页面。因此,在重新加载之前,您将在http://yoursite.com/yourPage,并且在重新加载后,您可以在http://yoursite.com/yourPage#reload。以下是一个简单的工作示例:

&#13;
&#13;
    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;
&#13;
&#13;

单击该按钮时,哈希将添加到窗口位置,然后重新加载页面,并附加URL片段。然后我决定在文档就绪功能中是否已重新加载页面。确保在本地测试。

答案 1 :(得分:0)

如果要从浏览器控制台运行代码,另一种方法可以是:

  1. 在要测试PageA的页面上打开开发人员工具
  2. 然后使用在PageA的浏览器控制台中执行的javascript在弹出窗口中打开同一页面(该页面必须是同一页面,以避免跨源错误)
  3. 将弹出窗口引用保存在javascript变量中
  4. 现在,您可以对弹出窗口中的页面执行任何操作,即使重新加载页面也是如此

示例:

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来检查条件呢?