2017-02-04 15 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參數傳遞 –