2017-02-04 14 views
0

您好,我正在尝试在我的测试引擎中添加倒数计时器。但我无法展示这一点。如果我在php页面中添加脚本比其工作,但重新加载并重新开始。但如果我保持java脚本文件分开,以避免重装比无法显示计时器。我正在添加代码,请建议我适合ans.Html和js在单独的文件中。在php中测试引擎的倒数计时器

<script> 
    //define your time in second 
    var c=120; 
    var t; 
    timedCount(); 

    function timedCount() { 
     var hours = parseInt(c/3600) % 24; 
     var minutes = parseInt(c/60) % 60; 
     var seconds = c % 60; 

     var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds); 

     document.getElementById("timer").innerHTML=result; 

     if(c == 0) { 
      //setConfirmUnload(false); 
      //$("#quiz_form").submit(); 
      window.location="result.php?td=$tid"; 
     } 
     c = c - 1; 
     t = setTimeout(function() { 
      timedCount() 
     }, 
     1000); 
    } 
</script> 

//html 
<div class='col-md-12 sub_top'> 
    <h4 style="color:#FF0000" align="center"> 
     Time Remaining : <span id='timer'></span> 
    </h4> 
</div> 

回答

0

当脚本运行时,您试图查找的元素(document.getElementById(“timer”))不在DOM中。

解决方案1 ​​

为了解决这个问题,你可以在window.onload事件执行代码

window.onload = function(){ 
       timedCount(); 
    } 

解决方案2

执行上DOMContentLoaded(文件就绪)

document.addEventListener('DOMContentLoaded', function(){ 
       timedCount(); 
      }, false); 
代码

解决方案3

刚刚结束标记之前将您的脚本。

+0

问题,这个解决方案是,每个我重新加载页面的计时时间从beginning.That我不想开始,实际上它的在线测试引擎,其中提交的每个问题页面重载的另一个问题后,计时器也开始从最初开始,但不希望定时器重新加载。 –

+0

当您更改窗口位置时,您可以将剩余时间作为GET参数传递 –