考试倒计时刷新页面如何不让时间从头开始! COOKIE记录时间吧,要不然就用SESSION 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可用session或cookies来记录考试的开始时间和结束时间,当刷新时就从session或cookies中取值 <%Session("tryTime")=Date()TimeGet=Session("tryTime")''这是ASP控制的时间%> <SCRIPT language=JavaScript> var id, iM = 0, iS = 1; start ="<%TimeGet%>"; <% Session("tryTime")=now() TimeGet=Session("tryTime")''这是ASP控制的时间 %> <FORM name=myform>剩余时间: <INPUT class=text2 size=10 value=剩余时间 name=clock> <INPUT type=hidden size=50 name=times> <SCRIPT language=JavaScript> var id, iM = 0, iS = 1; var start1 =" <%TimeGet%>"; var start=new Date(start1)if (document.myform.times.value==""){ starts=start.getTime(); }else{ starts=document.myform.times.value; } //document.myform.clock.value=start.getSeconds(); function go() { now = new Date(); time = (2700000-(now.getTime()-starts))/1000; //time = (10000-(now.getTime()-starts))/1000; time = Math.floor( time); iS = time % 60; iM = Math.floor( time / 60); if ( iS < 10){ document.myform.clock.value = " " + iM + ":0" + iS; }else{ document.myform.clock.value = " " + iM + ":" + iS; } document.myform.times.value =starts; if (time==300){ alert("请抓紧时间答题,距交卷还有5分钟。"); } if (time==0){ alert("时间到,请交卷。"); window.location="test.asp?gopage=jiaojuan&choose=" + document.form1.choose.value; } id = setTimeout( "go()", 1000); } go(); </SCRIPT> </form> <FORM name=myform>剩余时间: <INPUT class=text2 size=10 value="剩余时间" name="clock" id="clock"> <INPUT type=hidden size=50 name=times><SCRIPT language=JavaScript> var endVar = "2008/9/8 00:30:00"; //考试截止时间var allTimeVar = 45; //考试时间长度 分var iM = 0;var iS = 0;function showTime(){ var end = new Date(endVar); var start = new Date(); var timeDiff = Math.floor((end - start) / 1000); //当前时间与截止时间之间相差秒数 var iM = Math.floor(timeDiff / 60); var iS = (timeDiff % 60); if(iM > allTimeVar * 60) //考试还没开始呢! { document.getElementById("clock").value = "考试还未开始"; } else { document.getElementById("clock").value = iM + ":" + (iS < 10 ? "0" + iS : iS); if(timeDiff == 300) alert("请抓紧时间答题,距交卷还有5分钟。"); if(timeDiff <= 0) alert("时间到,请交卷。"); }}setInterval("showTime()",1000);</SCRIPT> <script>var oo,start,end,time,t1,t2,str,myCookie,searchName,shijianfunction setcookie(){ if(!is()){shijian =45*1000*60;document.cookie="timerr="+shijian;}}function is(){myCookie=document.cookie + ";"searchName="timerr="start = myCookie.indexOf(searchName); if(start!=-1){return true}else{return false}}function strat(){if(is()){start+= searchName.length end =myCookie.indexOf(";",start) time= unescape(myCookie.substring(start, end)); t1 = Math.floor(parseInt(time)/(1000*60))t2=(parseInt(time)-t1*1000*60)/1000str="剩余时间:"+t1+"分"+t2+"秒"document.getElementById("show").innerHTML=str;time=time-1000;document.cookie="timerr="+time;oo=setTimeout("strat()",1000)}else{document.getElementById("show").innerHTML="剩余时间:45分0秒"}}function again(){clearTimeout(oo);strat();}</script><body onLoad="strat()"><span id="show"></span><br><br><input id="kaoshi" value="开始考试" type="button" onClick="javascrite:setcookie();again()" /></body>刚学完时间函数和cookie正好拿来练练手.写的很差,连续刷新或者连续按"开始考试"按纽 时间会走快我只是来练练手的,还是参考前面2位前辈的吧 <% Session("tryTime")="2008/9/9 09:50:00" TimeGet=Session("tryTime")''这是ASP控制的时间 %> <FORM name=myform>剩余时间: <INPUT class=text2 size=10 value=剩余时间 name=clock> <INPUT type=hidden size=50 name=times> <SCRIPT language=JavaScript> var id, iM = 0, iS = 1; var start1 =" <%TimeGet%>"; var start=new Date(start1)if (document.myform.times.value==""){ starts=start.getTime(); }else{ starts=document.myform.times.value; } //document.myform.clock.value=start.getSeconds(); function go() { now = new Date(); time = (2700000-(now.getTime()-starts))/1000; //time = (10000-(now.getTime()-starts))/1000; time = Math.floor( time); iS = time % 60; iM = Math.floor( time / 60); if ( iS < 10){ document.myform.clock.value = " " + iM + ":0" + iS; }else{ document.myform.clock.value = " " + iM + ":" + iS; } document.myform.times.value =starts; if (time==300){ alert("请抓紧时间答题,距交卷还有5分钟。"); } if (time==0){ alert("时间到,请交卷。"); window.location="test.asp?gopage=jiaojuan&choose=" + document.form1.choose.value; } id = setTimeout( "go()", 1000); } go(); </SCRIPT> </form> 粗心了,还是漏了一个=号,看下面这个:<FORM name=myform>剩余时间: <INPUT class=text2 size=10 value=剩余时间 name=clock> <INPUT type=hidden size=50 name=times> <% Session("tryTime")="2008/9/9 09:50:00" '这里必须是设定的一个时间,你可以是在登陆的时候设置TimeGet=Session("tryTime")''这是ASP控制的时间 %> <SCRIPT language=JavaScript> var id, iM = 0, iS = 1; var start1 ="<%=TimeGet%>"; var start=new Date(start1) if (document.myform.times.value==""){ starts=start.getTime(); }else{ starts=document.myform.times.value; } //document.myform.clock.value=start.getSeconds(); function go() { now = new Date(); time = (2700000-(now.getTime()-starts))/1000; //time = (10000-(now.getTime()-starts))/1000; time = Math.floor( time); iS = time % 60; iM = Math.floor( time / 60); if ( iS < 10){ document.myform.clock.value = " " + iM + ":0" + iS; }else{ document.myform.clock.value = " " + iM + ":" + iS; } document.myform.times.value =starts; if (time==300){ alert("请抓紧时间答题,距交卷还有5分钟。"); } if (time==0){ alert("时间到,请交卷。"); window.location="test.asp?gopage=jiaojuan&choose=" + document.form1.choose.value; } id = setTimeout( "go()", 1000); } go(); </SCRIPT> </form> 以前写的一个计时器,结合cookie改了下剩余时间:<span id="spTimer"></span><br /><input type="button" id="btnStart" onclick="Start(this)" value="开始答题" /><script>//===========辅助函数var timer,CookieName='remaidtime';//这里定义计时器实例名称和cookie的名称window.onload=function(){ var m=ReadCookie(); if(m){ $("btnStart").disabled=true; $("btnStart").value="正在答题"; m=m[1].split(":"); timer=new Timer(parseInt(m[0]),parseInt(m[1]),parseInt(m[2]),'spTimer'); }}function Start(btn){ if(btn.value=="开始答题"){ timer=new Timer(0,45,0,'spTimer'); btn.value="正在答题"; btn.disabled=true; }}function SaveCookie(CookieValue){ var d=new Date(); d.setMinutes(d.getMinutes()+10);//有效时间10分钟 document.cookie=CookieName+"="+CookieValue+";expires="+d.toGMTString(); }function ReadCookie(){ var reg=new RegExp(CookieName+"=([^;]+);?","ig"); var cstr=document.cookie; return reg.exec(cstr); }function ClearCookie(){ var d=new Date(); d.setMinutes(d.getMinutes()-10); document.cookie=CookieName+"=;expires="+d.toGMTString(); }window.onbeforeunload=function(){ if(timer)SaveCookie(timer.hour+":"+timer.minute+":"+timer.second);}function FormatNumber(Num){if(Num<10)return "0"+Num;else return Num.toString();}function $(Id){if(typeof(Id)=="string")return document.getElementById(Id);else return Id;}//===========Class of Timer=============//参数类表//hour:小时,整数//minute:分钟,整数//second:秒,整数//ObjId:显示剩余时间的对象的idfunction Timer(hour,minute,second,ObjId){ var PackUp=this; this.Go=function(){ if (this.hour==0&&this.second==1&&this.minute==5) alert("请抓紧时间答题,距交卷还有5分钟。"); if(this.hour<1&&this.minute<1&&this.second<1){ clearInterval(this.timer); this.timer=null; ClearCookie(CookieName);//删除cookie alert("时间到,请交卷。"); window.location="test.asp?gopage=jiaojuan&choose=" + document.form1.choose.value; ; return; } this.second--; if(this.second<1){ if(this.minute>0){ this.second=59; this.minute--; } else if(this.hour>0){ this.minute=59; this.hour--; } } this.obj.innerHTML=FormatNumber(this.hour)+":"+FormatNumber(this.minute)+":"+FormatNumber(this.second); } this.hour=hour; this.minute=minute; this.second=second; this.obj=$(ObjId); if(!this.obj){ alert("请设置要显示时间的对象!") return; } this.obj.innerHTML=FormatNumber(this.hour)+":"+FormatNumber(this.minute)+":"+FormatNumber(this.second); if(hour<1&&minute<1&&second<1){ alert("此记时器无效!"); return; } this.timer=setInterval(function(){PackUp.Go();},1000); } 调用服务器时间,如果用户本机就是服务器,另设有权限限制的WINDOWS用户登录进行答题. 楼主要的效果还是用Cookie做好 12楼的朋友在吗,你的这个程序运一次后再运次就提示计数器无效,我看着有删除cookie代码,怎么没有删除掉呢? 存入cookie时忘记判断这个计时器是否已经完成了^____^-window.onbeforeunload=function(){//修改这里 if(timer&&(timer.hour!=0||timer.minute!=0||timer.second!=0)) SaveCookie(timer.hour+":"+timer.minute+":"+timer.second);} 复杂的登录 firefox和innerhtml的问题 JS 函数调用 按钮事件 高手过来看看,不是你想的那么简单 google map 的指针效果 ???frameset滚动条的问题 请教一个javascript变量基础问题,谢谢 关于JavaScript打印问题 诚心求教1、js可不可以取到文件的名称?2、可不可以取到数组的下标! 几个比较实用的自定义函数 我想实现像delphi中的日期时间输入 在一个滚动的页面里,想让一个<div>始终定位在左上角,请问怎么做?只告诉我怎样定位就好了,谢谢。 div嵌入div的问题
Session("tryTime")=Date()
TimeGet=Session("tryTime")''这是ASP控制的时间
%>
<SCRIPT language=JavaScript>
var id, iM = 0, iS = 1;
start ="<%TimeGet%>";
<%
Session("tryTime")=now()
TimeGet=Session("tryTime")''这是ASP控制的时间
%>
<FORM name=myform>剩余时间: <INPUT class=text2 size=10 value=剩余时间
name=clock> <INPUT type=hidden size=50 name=times>
<SCRIPT language=JavaScript>
var id, iM = 0, iS = 1;
var start1 =" <%TimeGet%>";
var start=new Date(start1)
if (document.myform.times.value==""){
starts=start.getTime();
}else{
starts=document.myform.times.value;
}
//document.myform.clock.value=start.getSeconds();
function go()
{
now = new Date();
time = (2700000-(now.getTime()-starts))/1000;
//time = (10000-(now.getTime()-starts))/1000;
time = Math.floor( time);
iS = time % 60;
iM = Math.floor( time / 60); if ( iS < 10){
document.myform.clock.value = " " + iM + ":0" + iS;
}else{
document.myform.clock.value = " " + iM + ":" + iS;
}
document.myform.times.value =starts;
if (time==300){
alert("请抓紧时间答题,距交卷还有5分钟。");
}
if (time==0){
alert("时间到,请交卷。");
window.location="test.asp?gopage=jiaojuan&choose=" + document.form1.choose.value;
}
id = setTimeout( "go()", 1000); }
go();
</SCRIPT>
</form>
<SCRIPT language=JavaScript>
var endVar = "2008/9/8 00:30:00"; //考试截止时间
var allTimeVar = 45; //考试时间长度 分
var iM = 0;
var iS = 0;function showTime()
{
var end = new Date(endVar);
var start = new Date();
var timeDiff = Math.floor((end - start) / 1000); //当前时间与截止时间之间相差秒数
var iM = Math.floor(timeDiff / 60);
var iS = (timeDiff % 60);
if(iM > allTimeVar * 60) //考试还没开始呢!
{
document.getElementById("clock").value = "考试还未开始";
}
else
{
document.getElementById("clock").value = iM + ":" + (iS < 10 ? "0" + iS : iS);
if(timeDiff == 300) alert("请抓紧时间答题,距交卷还有5分钟。");
if(timeDiff <= 0) alert("时间到,请交卷。");
}
}
setInterval("showTime()",1000);
</SCRIPT>
var oo,start,end,time,t1,t2,str,myCookie,searchName,shijian
function setcookie(){
if(!is())
{shijian =45*1000*60;document.cookie="timerr="+shijian;}}function is(){
myCookie=document.cookie + ";"
searchName="timerr="
start = myCookie.indexOf(searchName);
if(start!=-1)
{return true}
else
{return false}
}function strat(){
if(is())
{
start+= searchName.length
end =myCookie.indexOf(";",start)
time= unescape(myCookie.substring(start, end));
t1 = Math.floor(parseInt(time)/(1000*60))
t2=(parseInt(time)-t1*1000*60)/1000
str="剩余时间:"+t1+"分"+t2+"秒"
document.getElementById("show").innerHTML=str;
time=time-1000;
document.cookie="timerr="+time;
oo=setTimeout("strat()",1000)
}
else
{document.getElementById("show").innerHTML="剩余时间:45分0秒"}
}function again(){clearTimeout(oo);strat();}
</script>
<body onLoad="strat()">
<span id="show"></span>
<br><br>
<input id="kaoshi" value="开始考试" type="button" onClick="javascrite:setcookie();again()" />
</body>
刚学完时间函数和cookie正好拿来练练手.
写的很差,连续刷新或者连续按"开始考试"按纽 时间会走快
我只是来练练手的,还是参考前面2位前辈的吧
Session("tryTime")="2008/9/9 09:50:00"
TimeGet=Session("tryTime")''这是ASP控制的时间
%>
<FORM name=myform>剩余时间: <INPUT class=text2 size=10 value=剩余时间
name=clock> <INPUT type=hidden size=50 name=times>
<SCRIPT language=JavaScript>
var id, iM = 0, iS = 1;
var start1 =" <%TimeGet%>";
var start=new Date(start1)
if (document.myform.times.value==""){
starts=start.getTime();
}else{
starts=document.myform.times.value;
}
//document.myform.clock.value=start.getSeconds();
function go()
{
now = new Date();
time = (2700000-(now.getTime()-starts))/1000;
//time = (10000-(now.getTime()-starts))/1000;
time = Math.floor( time);
iS = time % 60;
iM = Math.floor( time / 60); if ( iS < 10){
document.myform.clock.value = " " + iM + ":0" + iS;
}else{
document.myform.clock.value = " " + iM + ":" + iS;
}
document.myform.times.value =starts;
if (time==300){
alert("请抓紧时间答题,距交卷还有5分钟。");
}
if (time==0){
alert("时间到,请交卷。");
window.location="test.asp?gopage=jiaojuan&choose=" + document.form1.choose.value;
}
id = setTimeout( "go()", 1000); }
go();
</SCRIPT>
</form>
name=clock> <INPUT type=hidden size=50 name=times>
<%
Session("tryTime")="2008/9/9 09:50:00" '这里必须是设定的一个时间,你可以是在登陆的时候设置
TimeGet=Session("tryTime")''这是ASP控制的时间
%>
<SCRIPT language=JavaScript>
var id, iM = 0, iS = 1;
var start1 ="<%=TimeGet%>";
var start=new Date(start1)
if (document.myform.times.value==""){
starts=start.getTime();
}else{
starts=document.myform.times.value;
}
//document.myform.clock.value=start.getSeconds();
function go()
{
now = new Date();
time = (2700000-(now.getTime()-starts))/1000;
//time = (10000-(now.getTime()-starts))/1000;
time = Math.floor( time);
iS = time % 60;
iM = Math.floor( time / 60); if ( iS < 10){
document.myform.clock.value = " " + iM + ":0" + iS;
}else{
document.myform.clock.value = " " + iM + ":" + iS;
}
document.myform.times.value =starts;
if (time==300){
alert("请抓紧时间答题,距交卷还有5分钟。");
}
if (time==0){
alert("时间到,请交卷。");
window.location="test.asp?gopage=jiaojuan&choose=" + document.form1.choose.value;
}
id = setTimeout( "go()", 1000); }
go();
</SCRIPT>
</form>
剩余时间:<span id="spTimer"></span><br /><input type="button" id="btnStart" onclick="Start(this)" value="开始答题" />
<script>//===========辅助函数
var timer,CookieName='remaidtime';//这里定义计时器实例名称和cookie的名称
window.onload=function(){
var m=ReadCookie();
if(m){
$("btnStart").disabled=true;
$("btnStart").value="正在答题";
m=m[1].split(":");
timer=new Timer(parseInt(m[0]),parseInt(m[1]),parseInt(m[2]),'spTimer');
}
}
function Start(btn){
if(btn.value=="开始答题"){
timer=new Timer(0,45,0,'spTimer');
btn.value="正在答题";
btn.disabled=true;
}
}
function SaveCookie(CookieValue){
var d=new Date();
d.setMinutes(d.getMinutes()+10);//有效时间10分钟
document.cookie=CookieName+"="+CookieValue+";expires="+d.toGMTString();
}
function ReadCookie(){
var reg=new RegExp(CookieName+"=([^;]+);?","ig");
var cstr=document.cookie;
return reg.exec(cstr);
}
function ClearCookie(){
var d=new Date();
d.setMinutes(d.getMinutes()-10);
document.cookie=CookieName+"=;expires="+d.toGMTString();
}window.onbeforeunload=function(){ if(timer)SaveCookie(timer.hour+":"+timer.minute+":"+timer.second);}
function FormatNumber(Num){if(Num<10)return "0"+Num;else return Num.toString();}
function $(Id){if(typeof(Id)=="string")return document.getElementById(Id);else return Id;}
//===========Class of Timer=============
//参数类表
//hour:小时,整数
//minute:分钟,整数
//second:秒,整数
//ObjId:显示剩余时间的对象的id
function Timer(hour,minute,second,ObjId)
{
var PackUp=this;
this.Go=function(){
if (this.hour==0&&this.second==1&&this.minute==5) alert("请抓紧时间答题,距交卷还有5分钟。"); if(this.hour<1&&this.minute<1&&this.second<1){
clearInterval(this.timer);
this.timer=null;
ClearCookie(CookieName);//删除cookie
alert("时间到,请交卷。");
window.location="test.asp?gopage=jiaojuan&choose=" + document.form1.choose.value; ;
return;
}
this.second--;
if(this.second<1){
if(this.minute>0){
this.second=59;
this.minute--;
}
else if(this.hour>0){
this.minute=59;
this.hour--;
}
}
this.obj.innerHTML=FormatNumber(this.hour)+":"+FormatNumber(this.minute)+":"+FormatNumber(this.second);
}
this.hour=hour;
this.minute=minute;
this.second=second;
this.obj=$(ObjId);
if(!this.obj){
alert("请设置要显示时间的对象!")
return;
}
this.obj.innerHTML=FormatNumber(this.hour)+":"+FormatNumber(this.minute)+":"+FormatNumber(this.second);
if(hour<1&&minute<1&&second<1){
alert("此记时器无效!");
return;
}
this.timer=setInterval(function(){PackUp.Go();},1000);
}
调用服务器时间,如果用户本机就是服务器,另设有权限限制的WINDOWS用户登录进行答题.
//修改这里
if(timer&&(timer.hour!=0||timer.minute!=0||timer.second!=0))
SaveCookie(timer.hour+":"+timer.minute+":"+timer.second);
}