我正在使用下面的脚本从给定时间开始倒计时,并在脚本上实时显示剩余的小时数+分钟+秒数。
完全正确地倒计时但是我遇到的问题是,当在浏览器上使用下一个和之前的按钮时,时间不会刷新,我看到了过去的时光。它要么显示上一次或更晚。
我知道浏览器上的下一个和之前的按钮不会刷新页面,但我该如何解决这个问题呢?
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
<body onload="timeout_warning('1800')">
答案 0 :(得分:0)
如果没有实例,我只能对解决方案发表意见。您可能希望我们使用JavaScript从Cookie中加载剩余时间,以便在单击浏览器箭头时,代码将从Cookie中抽取时间,而不是从缓存的数据中抽取时间。
答案 1 :(得分:0)
A solution has already been posted on this并使用表单在页面中存储数据,以查看用户是否按下了后退按钮。它设置了一些表单数据,如果页面返回,它可以判断数据是否已经设置,如果是,则需要强制重新加载(这样你的计时器才会重新启动)。