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 («Таймер»)) вы пытаетесь найти не в DOM, когда сценарий побежал.

Решение 1

Чтобы исправить это, вы можете выполнить код на window.onload события

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

Решение 2

выполнить код на DOMContentLoaded (документ готов)

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

Решение 3

Переместить скрипт непосредственно перед закрывающим тегом тела.

+0

Проблема с этим решением заключается в том, что каждый раз, когда я перезагружаю таймер страницы, начинается с начала. Этого я не хочу, на самом деле его онлайн-тестовый движок, где после отправки каждой страницы вопроса перезагружается другой вопрос, таймеры также начинаются с начала, но не нужно перезагружать таймер. –

+0

вы можете передать оставшееся время как параметр GET при изменении местоположения окна –