Javascript 防止计时器复位
我正在制作一个倒计时脚本,当时间达到0时退出程序 问题是当页面重新加载时,计时器会从头开始重新启动 有没有办法防止计时器复位Javascript 防止计时器复位,javascript,jscript,Javascript,Jscript,我正在制作一个倒计时脚本,当时间达到0时退出程序 问题是当页面重新加载时,计时器会从头开始重新启动 有没有办法防止计时器复位 // set the date we're counting down to var target_date = new Date().getTime(); var delay=100; // variables for time units var days, hours, minutes, seconds; // get tag elemen
// set the date we're counting down to
var target_date = new Date().getTime();
var delay=100;
// variables for time units
var days, hours, minutes, seconds;
// get tag element
var countdown = document.getElementById("countdown");
// update the tag with id "countdown" every 1 second
setInterval(function () {
// find the amount of "seconds" between now and target
var current_date = new Date().getTime();
var seconds_left = (current_date - target_date) / 1000;
var a=(delay-seconds_left);
// do some time calculations
minutes = parseInt(a / 60);
seconds = parseInt(a % 60);
var progress = a/delay*100;
// format countdown string + set tag value
countdown.innerHTML = '<div Class=outer style="font-size:20px;width:'+progress+'%">'+minutes + "m: " + seconds + "s" + '</div>';
if(a <= 0)
{
window.open("a.html")
self.close();
//var wind = window.open("a.html");
}
}, 1000);
//设置我们倒计时的日期
var target_date=new date().getTime();
无功延迟=100;
//时间单位变量
var天、小时、分钟、秒;
//获取标记元素
var countdown=document.getElementById(“倒计时”);
//每1秒更新id为“倒计时”的标签
setInterval(函数(){
//找出从现在到目标之间的“秒数”
var current_date=new date().getTime();
var秒数左=(当前日期-目标日期)/1000;
var a=(延迟-秒/左);
//做一些时间计算
分钟=分钟(a/60);
秒=parseInt(a%60);
var进度=a/延迟*100;
//格式化倒计时字符串+设置标记值
countdown.innerHTML=''+minutes+“m:''+seconds+“s”+'';
如果(a您可以将目标日期
存储在本地存储器(或cookie)中,并在页面加载中查找。例如:
var target_date = localStorage.target_date;
if (target_date) {
// Found it in local storage, turn the string into a number
target_date = parseInt(target_date);
} else {
// Didn't find it in local storage, get the target and
target_date = new Date().getTime(); // See below, this looks weird
localStorage.target_date = String(target_date);
}
本地存储不可用
请注意,只有字符串和某些其他与存储兼容的项可以存储在本地存储中,这就是为什么我要显式地处理上述数字的字符串版本。如果需要存储更复杂的信息,JSON通常是一种有用的格式
你的代码初始化target\u date
对我来说没有多大意义:它抓住了现在的时间。我希望倒计时能抓住target\u date
未来的时间。在任何情况下,替换该行(或替换你存储的内容)必要时。或者,您可以始终将当前时间放入cookie中,并在加载页面时加载该cookie。
“有没有办法防止计时器重置?”与您的标题“防止刷新”完全不同建议。它获取页面打开的时间,然后current_date每秒获取一次日期。它计算时间之间的差异;当时间间隔大于给定程序停止的延迟时间时。@user3852052:啊,明白了。那么上面的方法应该行得通。这使设置和获取Cookie值变得非常容易。没有它,您将ld可能需要编写自己的函数或以特殊格式设置值,并设置过期时间。我发布的链接中已经有getCookie()、setCookie()和checkCookie()函数。它们非常容易理解和使用。