Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript php中测试引擎的倒计时_Javascript_Php_Time_Countdowntimer - Fatal编程技术网

Javascript php中测试引擎的倒计时

Javascript php中测试引擎的倒计时,javascript,php,time,countdowntimer,Javascript,Php,Time,Countdowntimer,您好,我正在尝试添加倒计时在我的测试引擎。但我无法展示这一点。若我在php页面中添加脚本,那个么它会工作,但会重新加载并重新启动。但若我将java脚本文件分开以避免重新加载,那个么就不能显示计时器。我正在添加代码,请建议我使用合适的ans。Html和js在单独的文件中 <script> //define your time in second var c=120; var t; timedCount(); function timedCoun

您好,我正在尝试添加倒计时在我的测试引擎。但我无法展示这一点。若我在php页面中添加脚本,那个么它会工作,但会重新加载并重新启动。但若我将java脚本文件分开以避免重新加载,那个么就不能显示计时器。我正在添加代码,请建议我使用合适的ans。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>

//用秒来定义你的时间
var c=120;
变量t;
timedCount();
函数timedCount(){
var小时=parseInt(c/3600)%24;
var分钟数=parseInt(c/60)%60;
var秒=c%60;
var结果=(小时<10?“0”+小时:小时)+“:”+(分钟<10?“0”+分钟:分钟)+“:”+(秒<10?“0”+秒:秒);
document.getElementById(“计时器”).innerHTML=结果;
如果(c==0){
//setConfirmUnload(假);
//$(“#测验表格”)。提交();
window.location=“result.php?td=$tid”;
}
c=c-1;
t=设置超时(函数(){
timedCount()
},
1000);
}
//html
剩余时间:
脚本运行时,您试图查找的元素(document.getElementById(“timer”))不在DOM中

解决方案1

要解决这个问题,您可以在事件发生时执行代码

解决方案2

在上执行代码(文档就绪)

解决方案3


将脚本移动到结束正文标记之前。

此解决方案的问题在于每次重新加载页面时,计时器都会从头开始。我不希望,实际上是它的在线测试引擎,在提交每个问题后,页面会重新加载另一个问题,计时器也从开始启动,但不希望重新加载计时器。更改窗口位置时,可以将剩余时间作为GET参数传递
   window.onload = function(){
              timedCount();
    }
document.addEventListener('DOMContentLoaded', function(){
              timedCount();
            }, false);