HTML页面在使用JavaScript的条件下重新加载

HTML page reload on condition using JavaScript

本文关键字:新加载 加载 条件下 JavaScript HTML      更新时间:2023-11-12

如果某个输入字段(pass_phrase)中的值在某个时间(比如2分钟)后没有更改,我需要重新加载HTML页面。我是JS的新手,下面的代码是我到目前为止的代码。但它不起作用。如果我输入某个值,页面将永远不会重新加载。请帮助指出正确的解决方案或代码中的问题。谢谢

JS:

    var v1 = '', v2 = '';           
    function GetMyValues(){        
        setTimeout(function() {
            v1 = document.getElementById('pass_phrase').value;
        }, 1000*60*1);        
        setTimeout(function() {
            v2 = document.getElementById('pass_phrase').value;
        }, 1000*60*2);        
    }  
    if (v1 == v2 && v1 != '') {
       window.location="https://domain-name.com";
    } else {
       setTimeout('GetMyValues()', 1000*60*1);
    }

您在页面加载时只检查v1v2。您需要在需要时检查(超时后):

var v1 = '', v2 = '';
function GetMyValues() {
    setTimeout(function () {
        v1 = document.getElementById('pass_phrase').value;
    }, 1000 * 60 * 1);
    setTimeout(function () {
        v2 = document.getElementById('pass_phrase').value;
        // Check and reload
        if (v1 == v2 && v1 != '') {
            window.location = "https://domain-name.com";
            // or location.reload(); if it is really a reload of the same page.
        } 
    }, 1000 * 60 * 2);
}
setTimeout(GetMyValues, 1000 * 60 * 1);

尽管这会在3秒钟后检查它,但由于您在1分钟后触发GetMyValues,然后等待2分钟来比较这两个值。如果你想在页面加载后2分钟检查值,你应该更改:

setTimeout(GetMyValues, 1000 * 60 * 1);

仅:

getMyValues();

我相信你可以用它来重新加载你的页面:

location.reload(); 

请查看此文档。