gpt4 book ai didi

javascript - 我如何更改此代码以使倒计时在重新加载时不重置?

转载 作者:行者123 更新时间:2023-11-30 18:11:20 24 4
gpt4 key购买 nike

我从 here 得到了这段代码.但是,我对 JS 不太了解,需要一些帮助才能使计时器在重新加载时不重置。另外,我希望它倒计时天而不是小时、分钟和秒。有人可以帮帮我吗?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title></title>
<script>
/*<![CDATA[*/

function zxcCountDown(id,mess,secs,mins,hrs,days){
var obj=document.getElementById(id);
var oop=obj.oop
if (!oop){
obj.oop=new zxcCountDownOOP(obj);
}
obj.oop.start(mess,secs,mins,hrs,days);
}

function zxcCountDownOOP(obj,mess){
this.obj=obj;
this.to=null;
}

zxcCountDownOOP.prototype={

start:function(mess,secs,mins,hrs,days){
clearTimeout(this.to);
this.mess=mess;
this.mhd=[mins,hrs,days];
var date=new Date();
this.fin=new Date(date.getFullYear(),date.getMonth(),date.getDate()+(days||0),date.getHours()+(hrs||0),date.getMinutes()+(mins||0),date.getSeconds()+(secs||0));
this.cng();
},

cng:function(){
var now=new Date(),s=(this.fin-now)/1000+1,d=Math.floor(s/60/60/24),h=Math.floor(s/60/60-d*24),m=Math.floor(s/60-h*60-d*24*60),s=Math.floor(s-m*60-h*3600-d*24*60*60);
if (this.fin-now>-500){
this.obj.innerHTML=(this.mhd[2]?(d>9?d:'0'+d)+' days ':'')+(this.mhd[1]||this.mhd[2]?(h>9?h:'0'+h)+' hours ':'')+(this.mhd[0]||this.mhd[1]||this.mhd[2]?(m>9?m:'0'+m)+' minutes ':'')+(s>9?s:'0'+s)+' seconds';
this.to=setTimeout(function(oop){ return function(){ oop.cng(); }}(this),1000);
}
else if (this.mess){
this.obj.innerHTML=this.mess;
}
}

}

/*]]>*/
</script></head>

<body onload="zxcCountDown('tst','message',20); zxcCountDown('tst1','message 1',0,0,2,0);">

<span id="tst" ></span> <input type="button" name="" value="Re-Start" onmouseup="zxcCountDown('tst','message',20);"/>
<br />
<span id="tst1" ></span>
</body>

</html>

最佳答案

从技术上讲,你不能。 Javascript 不会在加载时保持状态。不过,有多种选择。

  1. 您可以使用本地存储来保存当前计数并检索它在页面加载时再次出现。不过,这是一个较新的 API,并且不会向后兼容。 http://diveintohtml5.info/storage.html
  2. 您可以将值存储在 cookie 中,并在重新加载页面时检索 cookie。 http://www.quirksmode.org/js/cookies.html

不过,仅此而已。

关于javascript - 我如何更改此代码以使倒计时在重新加载时不重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14518429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com