deerchao(飞鱼)
详细是怎样实现?我不明白,多谢啦!

解决方案 »

  1.   

    上次看到有个把时间存到cookie里,然后再从cookie里调出来.但是途时间还是有差具的.除非与系统时间对比.
      

  2.   

    http://community.csdn.net/Expert/topic/3535/3535108.xml?temp=.8473627
      

  3.   

    JK_10000(JK)
    我看了,那个例子挺好,可是我试了,一刷新,计时又重新开始!
      

  4.   

    <script language="javascript">
    var endTestDate=(new Date())*1+45*60000;var ss = setInterval(function()
    {
        var nowDate=(new Date())*1;
        var leftSeconds=((endTestDate-nowDate)-(endTestDate-nowDate)%1000)/1000;
        var leftMenutes=(leftSeconds-leftSeconds%60)/60;
        leftSeconds=leftSeconds%60;
        
    //若时间到
    if (nowDate>=endTestDate)
    {
           aler("时间到,得交卷啦!");
       form1.submit();
    }

    str="<b><font size=3 color='#0000FF'>剩余时间:"+leftMenutes+"分"+leftSeconds+"秒</font></b>";
    sTime.innerHTML=str;},1000);function initFun()
    {
    //第一次登录或离第一次有效交卷时时超过一小时,刚以本次页面打开时间为起始时间,否则以上次页面打开时间为起始时间。
    if(document.all.endTestDateInput.value=="" || (new Date())-(new Date(document.all.endTestDateInput.value))>36000000 )
    document.all.endTestDateInput.value=endTestDate;
    else endTestDate=document.all.endTestDateInput.value*1;
    }
    </script>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" >
    <title></title>
    </head>
    <script>
    function f_jj()  //交卷
    {
        if (confirm("是否真的要退出?"))
    {
        }
    }</script>
    <body onload="initFun();">
    <form method="POST" name="form1" action="" target="mainFrame">
    <table  width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr> 
     <td align="center"><div id="sTime"></div>
    </tr><tr> 
    <td align="center">
        <input type="button" name="St1" value="交卷" onclick="f_jj()">
    </td>
    </tr>
    </table>
    <br>
    End test date:<input value="" name="endTestDateInput" style="behavior:url(#default#homepage)"> 
    </form>
    </body>
    </html>
      

  5.   

    另外,正如 :
    回复人: guoweidong(※『孤独~寂) ( ) 信誉:100  2004-11-24 17:14:00  得分: 0  
    所言,
    前台的代码只能给用户提醒时间,
    不能防止作弊。
      

  6.   

    <html>
    <head>
    <script>
    if(getCookie("times")!="")
    {
    var endminutes=parseInt(getCookie("times").split(":")[1])*60+parseInt(getCookie("times").split(":")[2]);
    }
    else
    {
    var endminutes=50 * 60;
    }
    var betweendays=0;
    function setTimeEnd()
    {
       var hour=0;
    endminutes= endminutes - 1;
    hour=endminutes%3600
    hour=(hour-(endminutes%3600))/3600
    hour = hour.toString();
    if (hour.length < 2)
    hour = "0" + hour;
    var temp=hour+":"+parseInt(endminutes / 60) + ":" + endminutes % 60;
    document.all.countdown.innerText=temp
    SetCookie("times",temp);
    if (endminutes==0)
    {
    alert("考试时间到!");
    return;
    }
    setTimeout("setTimeEnd()",1000);
    }function SetCookie(name,value)
    {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) +  ((domain == null) ? "" : ("; domain=" + domain)) +    ((secure == true) ? "; secure" : "");
    }
    function DeleteCookie(name)
    {
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    var cval = GetCookie (name);
    document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
    }
    function getCookie(cookieName)
    {
      var cookieString = document.cookie;
      var start = cookieString.indexOf(cookieName + '=');
      // 加上等号的原因是避免在某些 Cookie 的值里有
      // 与 cookieName 一样的字符串。
      if (start == -1) // 找不到
        return null;
      start += cookieName.length + 1;
      var end = cookieString.indexOf(';', start);
      if (end == -1) return unescape(cookieString.substring(start));
      return unescape(cookieString.substring(start, end));
    }
    </script>
    </head>
    </head>
    <body onload="setTimeEnd();">
    考试剩余时间:<span id="countdown" style="FONT-WEIGHT: bolder"> 
    </span></body>
    </html>
      

  7.   

    上面的代码改了一下.<html>
    <head>
    <script>
    if(getCookie("times")==null||getCookie("times").split(":")[2].toString()=="NaN")
    {
    var endminutes=50 * 60;
    }
    else
    {
    var endminutes=parseInt(getCookie("times").split(":")[1])*60+parseInt(getCookie("times").split(":")[2]);
    }
    var betweendays=0;
    function setTimeEnd()
    {
       var hour=0;
    endminutes= endminutes - 1;
    hour=endminutes%3600
    hour=(hour-(endminutes%3600))/3600
    hour = hour.toString();
    if (hour.length < 2)
    hour = "0" + hour;
    var temp=hour+":"+parseInt(endminutes / 60) + ":" + endminutes % 60;
    document.all.countdown.innerText=temp
    SetCookie("times",temp);
    if (endminutes==0)
    {
    alert("考试时间到!");
    return;
    }
    setTimeout("setTimeEnd()",1000);
    }function SetCookie(name,value)
    {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) +  ((domain == null) ? "" : ("; domain=" + domain)) +    ((secure == true) ? "; secure" : "");
    }
    function DeleteCookie(name)
    {
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    var cval = GetCookie (name);
    document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
    }
    function getCookie(cookieName)
    {
      var cookieString = document.cookie;
      var start = cookieString.indexOf(cookieName + '=');
      // 加上等号的原因是避免在某些 Cookie 的值里有
      // 与 cookieName 一样的字符串。
      if (start == -1) // 找不到
        return null;
      start += cookieName.length + 1;
      var end = cookieString.indexOf(';', start);
      if (end == -1) return unescape(cookieString.substring(start));
      return unescape(cookieString.substring(start, end));
    }
    </script>
    </head>
    </head>
    <body onload="setTimeEnd();">
    考试剩余时间:<span id="countdown" style="FONT-WEIGHT: bolder"> 
    </span></body>
    </html>
      

  8.   

    谢谢guoweidong(※『孤独~寂) 的一直关注,倒计时已解决,现在是放不到系统中去,那系统既有asp,又有xml,还有sxlt,我不能加在asp页,注定只有加在sxlt页,sxlt我不懂,我是一头的雾水。但是现在我就结帖喽!谢谢各位大侠!
      

  9.   

    在客户端可用cookie,你用cookie用来纪录预计目的时间(开始时间确定目的时间也就确定了),这样计数器就是用系统当前时间和目的时间的差来表示,只要不改变系统时间就可以。当然,如果要防止系统时间被改变,你就该用服务器端时间了,所以现在所有的网络考试系统都不是用客户端时间的,而是服务器时间。