2017-02-04 12 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

このソリューションの問題は、ページタイマーを最初からリロードするたびに発生することです。私は実際にオンラインテストエンジンを使いたくないのですが、各質問ページの提出後に別の質問が再ロードされます。タイマーをリロードする必要はありません。 –

+0

ウィンドウの場所を変更すると、GETパラメータとして残りの時間を渡すことができます –

関連する問題