只有选中复选框时,javascript才会重新加载html页面

时间:2016-11-29 16:01:03

标签: javascript html

如果选中复选框,我想每隔x秒重新加载一次页面 我找到了一个为重新加载剪断的代码,并添加了一个if语句 但它不起作用。该脚本仅在没有if状态的情况下工作。
我想念什么?

<!-- Reload page-->
setTimeout(function()
        {
            if (document.getElementById('CheckBoxReloadPage').checked)
            {
                location.reload(true);
                document.getElementById("CheckBoxReloadPage").checked = true;
            }
        },
        5000);

由于
帕特里克

1 个答案:

答案 0 :(得分:3)

您的页面在5秒后正确重新加载,但如果您在页面加载后的前5秒内选中了复选框,则

如果您希望检查每5秒而不是从现在起5秒,请将setTimeout更改为setInterval

然后,正如您可能想象的那样,当您的页面重新加载时,一切都将恢复原样 - 包括复选框。您必须将复选框的状态存储在会话存储中,并在加载时将其设置为您的复选框:

// Gets the reference of the checkbox once and for all
var myCheckbox = document.getElementById('CheckBoxReloadPage');

// Sets the initial value of the checkbox to the stored state
myCheckbox.checked = sessionStorage.getItem('checkbox-state');

// Listen to every change on the checkbox
myCheckbox.addEventListener('change', function (event) {
    // Store the state of the checkbox to the session storage
    sessionStorage.setItem('checkbox-state', event.target.checked);
});

setInterval(function() {
    if (myCheckbox.checked) {
        location.reload(true);
    }
}, 5000);