这个代码是想在页面10s计时,等10s结束,弹出一个对话框,点确定的话,重新计时。前边的还好,点确定重新计时的代码总是写不对。<html>
<body onload = "printTime()">
   <div id = "printTime">
   </div>
<script type="text/javascript">
var p=0,m=0,s=10,a;
      function timeControl(){
            if(p == 0){
               if(s == 0){
                  if(m == 0){
                     p = 1;
                     a=confirm("10s have passed.");
                     return a;
                  }
                  else{
                     m = m - 1;
                     s = 60;
                  }
               }
               s = s - 1;
               var printM = m;
               var printS = s;
               if(m < 10){
                  printM = "0" + m;
               }
               if(s < 10){
                  printS = "0" + s;
               }
               document.getElementById("printTime").innerHTML = "00:" + printM + ":" + printS;
            }
         }
     
         function printTime(){
            setInterval("timeControl()",1000);
         }         function re(){
            if(a=true){
               p = 0;
               m = 0;
               s = 10;
               printTime();}}
                 
</script></body>
</html>

解决方案 »

  1.   

    var timer = null;
             function printTime(){
    if(!timer) clearInterval(timer);
               timer = setInterval("timeControl()",1000);
             }setInterval是定时执行,效果不好,建议使用setTimeout来做
      

  2.   


    <body onload = "printTime()">
       <div id = "printTime">
       </div>
    <script type="text/javascript">
    var p=0,m=0,s=10,a;
          function timeControl(){
     // alert("a")
                if(p == 0){
                   if(s == 0){
                      if(m == 0){
                         p = 1;
                         a=confirm("10s have passed.");
                         return a;
                      }
                      else{
                         m = m - 1;
                         s = 60;
                      }
                   }
                   s = s - 1;
                   var printM = m;
                   var printS = s;
                   if(m < 10){
                      printM = "0" + m;
                   }
                   if(s < 10){
                      printS = "0" + s;
                   }
       if(s==0){
       //alert("s==0")
           s=10;
       }
                   document.getElementById("printTime").innerHTML = "00:" + printM + ":" + printS;
                }
             }
             
           function printTime(){
                setInterval("timeControl()",1000);
             }         function re(){
                if(a=true){
                   p = 0;
                   m = 0;
                   s = 10;
                   printTime();
     }
    }
                     
    </script>
      

  3.   

    加上
    if(s==0){
    //alert("s==0")
    s=10;
    }
    当清零之后,楼主没有处理
      

  4.   

    setInterval是定时执行,效果不好,建议使用setTimeout来做