我的JavaScript计时器没有';行不通

我的JavaScript计时器没有';行不通,javascript,html,web,timer,Javascript,Html,Web,Timer,我试图创建一个小的JavaScript计时器,在这个计时器中,用户回答问题的时间有限,如果用户没有及时回答,他们将被引导回主页。就计时器而言,我从代码中得到的只是字面上的“[]” 我的代码: <DOCTYPE! html> <html> <head> <link rel="stylesheet" type="text/css" href="style_q1.css"> <script type="text/javascript

我试图创建一个小的JavaScript计时器,在这个计时器中,用户回答问题的时间有限,如果用户没有及时回答,他们将被引导回主页。就计时器而言,我从代码中得到的只是字面上的“[]”

我的代码:

    <DOCTYPE! html>

<html>

<head>

<link rel="stylesheet" type="text/css" href="style_q1.css">

<script type="text/javascript">

var time="60";
var min="0";
var sec="0";

function startTimer() {
      min=parseInt(timer/60);
      sec=parseInt(timer%60);

      if(timer<1){

        window.location="index.html";

      }

      document.getElementById("time").innerHTML = "<b> Time Left: </b>"+min.toString()+":"+sec.toString();
      timer--;
      setTimeout(function(){
      startTimer();
      }, 1000) ;
}

</script>


</head>

<body onload="startTimer();">

  <div id="top">


  </div>


  <div id="logo">

<h1 style="color:white;"> Question 1 -  Geography </h1>

  </div>

  <div id="game_area">

 <center>  <h2> What is the capital of Ireland? </h2> </center>



  </div>


  <div id="time">

      <center> <b>[<span id="time" ></span></b>]</center>

  </div>

  </body>

  </html>

var time=“60”;
var min=“0”;
var sec=“0”;
函数startTimer(){
min=parseInt(定时器/60);
sec=parseInt(计时器%60);
如果(timer只需使用,它几乎就是为此而设计的:

更新:请记住在时间结束时停止setinterval进程。 使用此方法停止进程

var secondsLeft=60;
函数startTimer(){
var min=parseInt(secondsLeft/60);
var sec=parseInt(secondsLeft%60);
if(secondsLeft拼写错误

将时间重命名为计时器


var timer=“60”;
var min=“0”;
var sec=“0”;
函数startTimer(){
min=parseInt(定时器/60);
sec=parseInt(计时器%60);
如果(计时器需要注意的几件事:

  • 而不是
  • id属性应该是唯一的,您有两个
  • 已弃用。请使用CSS查找解决方案
  • 与其在
    中添加
    onload
    属性,我建议在文档中添加
    DOMContentLoaded
    事件侦听器

    <link rel="stylesheet" type="text/css" href="style_q1.css">
    
    <script type="text/javascript">
    
        function startTimer() {
            min = parseInt(timer / 60);
            sec = parseInt(timer % 60);
    
            if (timer < 1) {
                window.location = "index.html";
            }
    
            document.getElementById("time").innerHTML = "<b> Time Left: </b>" + min.toString() + ":" + sec.toString();
            timer--;
            setTimeout(function () {
                startTimer();
            }, 1000);
        }
    
        var timer = 60,
            min = 0,
            sec = 0;
    
        document.addEventListener('DOMContentLoaded', function () {
            startTimer();
        });
    </script>
    

    
    函数startTimer(){
    min=parseInt(定时器/60);
    sec=parseInt(计时器%60);
    如果(计时器<1){
    window.location=“index.html”;
    }
    document.getElementById(“time”).innerHTML=“剩余时间:”+min.toString()+“:”+sec.toString();
    计时器--;
    setTimeout(函数(){
    startTimer();
    }, 1000);
    }
    var定时器=60,
    最小值=0,
    秒=0;
    document.addEventListener('DOMContentLoaded',函数(){
    startTimer();
    });
    

    问题1-地理 爱尔兰的首都是什么? []

      • 您的代码在变量
        time
      • 您可以使用setInterval来完成场景
      • 请记住在时间结束时停止setinterval进程
      var定时器=10;
      var min=0;
      var-sec=0;
      有效期;
      函数startTimer(){
      min=parseInt(定时器/60);
      sec=parseInt(计时器%60);
      如果(计时器<1){
      //window.location=“index.html”;
      log(“时间到了!”);
      clearInterval(refreshIntervalId);
      返回;
      }
      document.getElementById(“time”).innerHTML=“剩余时间:”+min+:“+sec;
      计时器--;
      }
      var refreshtintervalid=setInterval(startTimer,1000);
      
      问题1-地理
      爱尔兰的首都是什么?
      []
      
      为什么你有两个body标签?你没有在任何地方定义
      计时器。我修复了body frankerzi如果下面的答案之一回答了你的问题,这个网站的工作方式,你会“接受”答案就在这里:不过,如果你的问题真的已经被回答了。如果没有,请考虑在这个问题上添加更多的细节。我想很好地提到,OP需要使用方法<代码> > CaleTeals来停止SET间隔过程。一旦页面重定向。是的,但对于使用SPA相同场景的未来用户来说,这一点很重要。当然,如果您愿意:-)
      
      <link rel="stylesheet" type="text/css" href="style_q1.css">
      
      <script type="text/javascript">
      
          function startTimer() {
              min = parseInt(timer / 60);
              sec = parseInt(timer % 60);
      
              if (timer < 1) {
                  window.location = "index.html";
              }
      
              document.getElementById("time").innerHTML = "<b> Time Left: </b>" + min.toString() + ":" + sec.toString();
              timer--;
              setTimeout(function () {
                  startTimer();
              }, 1000);
          }
      
          var timer = 60,
              min = 0,
              sec = 0;
      
          document.addEventListener('DOMContentLoaded', function () {
              startTimer();
          });
      </script>