![](/img/trans.png)
[英]How to prevent onbeforeunload from running in pure javascript?
[英]Prevent onbeforeunload function from pausing Javascript timer
在我的网页中,我有一个使用 Javascript 的setTimeout()
的倒数计时器。
function Tick() {
if (RemainingSeconds <= 0) {
alert("Time is up.");
return;
}
RemainingSeconds -= 1;
ElapsedSeconds += 1;
UpdateTimerDisplay();
window.setTimeout("Tick()", 1000);
}
我还有一个在onbeforeunload
上触发的功能,以“阻止”用户离开页面。
window.onbeforeunload = function () {
if (!isIEAjaxRequest) {
return "You should use the logout button to leave this page!";
}
else {
isIEAjaxRequest = false;
}
};
问题是当“您确定要离开此页面吗?” 窗口提示,它暂停setTimeout()
函数。 关于如何防止这种情况的任何想法?
你不能。 Javascript 是严格单线程的,因此任何模态弹出窗口都会挂起其他所有内容。
一种可能的解决方法可能是使用var before = new Date()
来存储对话框出现之前的时间,然后使用该时间来计算对话框消失后经过的时间以弥补错过的秒数。
不,当 UI 线程被另一个任务消耗时,您不能在后台继续更新 UI(在这种情况下,呈现本机模态对话框提示)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.