我尝试使用JavaScript每18分钟刷新一次页面,但我的代码似乎无法正常工作。
这是我的代码:
function startChecking() {
secondsleft -= 1e3;
if (secondsleft <= 3e4) {
document.getElementById("div_countdown").style.display = "";
document.getElementById("timercounter").innerHTML = Math.abs(secondsleft / 1e3) + " Seconds"
}
}
function startschedule() {
clearInterval(timeout);
clearInterval(interval);
timeout = setTimeout("window.location.href=window.location.href;", threshold);
secondsleft = threshold;
interval = setInterval(function() {
startChecking()
}, 1e3)
}
function resetTimer() {
startschedule();
document.getElementById("div_countdown").style.display = "none";
document.getElementById("timercounter").innerHTML = ""
}
var timeout, interval;
var threshold = 108e4;
var secondsleft = threshold;
startschedule();
window.onload = function() {
startschedule()
}
<a id="div_countdown" style="display:none;" onclick="javascript:resetTimer();">Chat Will Refresh in <span id="timercounter"></span> Click <font color="#FA5882">here</font> to Cancel</a>
当我进入页面时,它将等待18分钟,然后如果还剩30秒,它将显示30秒并在它达到0时将其计数为0,它将刷新页面并重新开始。
但是当剩下30秒时,如果我点击30秒就不会刷新,但它会将计时器重置为18分钟。
我想制作另一个按钮,当我点击它时,按钮必须隐藏,定时器必须停止进行会话,直到我重新打开浏览器。我怎么能解决它?
答案 0 :(得分:0)
唯一的变化是更短的延迟(不能等待18分钟来调试脚本)。
在startChecking()
中,因为您显示剩余的秒数,您应该将值减少1000(1秒)并将secondsleft
除以1000 ......
间隔也应该是1000。
留下两个可自定义的数字......
最长时间为18分钟的threshold
...
以及在条件if (secondsleft <= 10000)
在评论中提及quirimmo时,超时的clearInterval()
应为clearTimeout()
。
function startChecking() {
secondsleft -= 1000;
if (secondsleft <= 10000) {
document.getElementById("div_countdown").style.display = "";
document.getElementById("timercounter").innerHTML = Math.abs(secondsleft / 1000) + " Seconds"
}
}
function startschedule() {
clearTimeout(timeout);
clearInterval(interval);
timeout = setTimeout("window.location.href=window.location.href;", threshold);
secondsleft = threshold;
interval = setInterval(function() {
startChecking()
}, 1000)
}
function resetTimer() {
startschedule();
document.getElementById("div_countdown").style.display = "none";
document.getElementById("timercounter").innerHTML = ""
}
var timeout, interval;
var threshold = 12000;
var secondsleft = threshold;
startschedule();
window.onload = function() {
startschedule()
}
<a id="div_countdown" style="display:none;" onclick="javascript:resetTimer();">Chat Will Refresh in
<span id="timercounter"></span> Click <font color="#FA5882">here</font> to Cancel
</a>
页面不会在上面的代码段中刷新,但会在CodePen
中刷新