Здравствуйте, я пытаюсь добавить таймер обратного отсчета в моем тестовом движке. Но я не могу показать это. Если я добавляю скрипт на страницу php, то он работает, но перезагружается и запускается снова. но если я держу файл сценария Java отдельно, чтобы избежать перезагрузки, чем невозможно отобразить таймер. Я добавляю код, пожалуйста, предложите мне подходящие. HTML и JS находятся в отдельном файле.
<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>
Элемент (document.getElementById («timer»)), который вы пытались найти, не был в DOM при запуске сценария.
Решение 1
Чтобы исправить это, вы можете выполнить код на window.onload событие
window.onload = function(){
timedCount();
}
Решение 2
выполнить код на DOMContentLoaded (документ готов)
document.addEventListener('DOMContentLoaded', function(){
timedCount();
}, false);
Решение 3
Переместите ваш скрипт непосредственно перед закрывающим тегом body.
Других решений пока нет …