-1

我正在使用下面的脚本从给定时间倒计时,并实时显示脚本超时还剩多少小时+分钟+秒。

倒计时非常好,但我面临的问题是,在浏览器上使用下一个上一个按钮时,时间不会刷新,而是看到旧时间。它要么显示以前的时间,要么显示以后的时间。

我知道浏览器上的下一个上一个按钮不会刷新页面,但我该如何克服这个问题?

JS

function timeout_warning(login_timeout)
{
    var counter = 0;
    var total_seconds = 0;
    var colour = '';
    var interval_id = '';

    interval_id = setInterval(function ()
    {
        counter++;

        total_seconds = login_timeout - counter;
        hours = parseInt(total_seconds / 3600 ) % 24;
        minutes = parseInt(total_seconds / 60 ) % 60;
        seconds = parseInt(total_seconds % 60, 10);

        remaining = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);

        if (minutes == 0 && seconds == 0)
        {
            document.getElementById('font_timeout').innerHTML = 'Timeout';
            window.clearInterval(interval_id);
        }
        else
        {
            document.getElementById('font_timeout').innerHTML = remaining + 'sec';
        }
    }, 1000);
}

HTML 正文

<body onload="timeout_warning('1800')">
4

2 回答 2

0

已经在此发布了一个解决方案,并使用表单在页面中存储数据以查看用户是否按下了返回按钮。它设置了一些表单数据,如果页面返回,它可以判断该数据是否已经设置,如果是,则需要强制重新加载(因此您的计时器将重新启动)。

于 2013-03-27T10:35:47.310 回答
0

如果没有现场示例,我只能对解决方案发表意见。您可能希望我们的 JavaScript 从 cookie 中加载剩余时间,以便在单击浏览器箭头时,代码将从 cookie 中提取时间,而不是从缓存数据中提取时间。

于 2013-03-27T10:30:03.487 回答