编程语言
首页 > 编程语言> > 防止onbeforeunload函数暂停javascript计时器

防止onbeforeunload函数暂停javascript计时器

作者:互联网

在我的网页上,我有一个使用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()函数.有关如何防止这种情况的任何想法?

解决方法:

一个可能的解决方法可能是使用var before = new Date()来存储对话框出现之前的时间,然后使用那个来计算对话框消失后的传递时间以弥补错过的秒数.

标签:javascript,javascript-events,settimeout,onbeforeunload
来源: https://codeday.me/bug/20190613/1231625.html