在if语句中添加window.location时,setInterval会冻结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在if语句中添加window.location时,setInterval会冻结相关的知识,希望对你有一定的参考价值。
我有一个基本计时器在这里倒计时。从5开始,归零,没什么大不了的。如果我没有将window.location包含在底部的if语句中,以便在定时器达到零并且间隔被清除后重定向页面,则会发生两件事。如果我在clear interval语句之前添加“window.location”,则间隔将在4秒时冻结并停止倒计时。如果我在清除间隔后添加window.location,则间隔下降到4,然后在达到零之前自动重定向。这几乎就像代码在倒数时识别5和4之间的“0”一样。有什么建议?
<p> You will be redirected in <span id="countdowntimer">5 </span> Seconds</p>
<script type="text/javascript">
var timeleft = 5;
var downloadTimer = setInterval(function() {
timeleft--;
document.getElementById("countdowntimer").textContent = timeleft;
if (timeleft <= 0)
window.location.href = "testpage.html";
clearInterval(downloadTimer);
}, 1000);
</script>
答案
我想通了,当我最初编写代码时,我没有在if条件周围添加括号,因为它是一行。我现在看到我需要围绕多线的括号,如果它现在工作正常。
以上是关于在if语句中添加window.location时,setInterval会冻结的主要内容,如果未能解决你的问题,请参考以下文章
Safari 浏览器在重定向 window.location 时崩溃
将标题添加到 window.location.pathname
仅删除 URL 的最后一个哈希,该哈希是使用 window.location.hash 添加的
window.location.reload(false);window.location.reload(true);history.Go区别