通过Javascript错误将考试时间设置为30分钟

Set exam time 30 minutes by Javascript error?

本文关键字:设置 30分钟 考试时间 Javascript 错误 通过      更新时间:2023-09-26

我正在为网络考试页面写作,在那里我必须设置30分钟的考试时间。所以我使用onloadsettimeout功能来检查30分钟后,问题页面是否关闭并转到完成页面。我想添加当前分钟30.但是它不起作用,不要去finish.php.!

<body onload="time()">
  <!-- question code -->
<div id="time"></div><!-- show time  -->
</body>

.JS

<script>
function time(){
var j = new Date();
var hr = j.getHours();
var sec = j.getSeconds();
var min = j.getMinutes();
var m = min + 30;//set 30 minutes exam times
if (m === min) {
    location.href = "finish.php";
}    
document.getElementById('time').innerHTML = hr + ":" + min + ":" + sec;
 setTimeout(function() {
    time()
 }, 1000);
}
</script>

试试这个

function time(){
    setTimeout(function() {
        location.href = "finish.php";
    }, 30*60*1000);
    setInterval(function() {
       var j = new Date();
       var hr = j.getHours();
       var min = j.getMinutes();
       var sec = j.getSeconds();
       document.getElementById('time').innerHTML = hr + ":" + min + ":" + sec;
    }, 1000);
 }

function time() {
    var time = 60 * 1;  //Replace 1 with 30 minutes
    var minutes, seconds;
    setInterval(function () {
      minutes = parseInt(time / 60)
      seconds = parseInt(time % 60);
      minutes = minutes < 10 ? "0" + minutes : minutes;
      seconds = seconds < 10 ? "0" + seconds : seconds;
      document.getElementById('time').innerHTML = minutes + ":" + seconds;
       
      time--;
      
      if (time < 0) {
        location.href = "finish.php";
      }
    }, 1000);
}
<body onload="time()">
  <!-- question code -->
<div id="time"></div><!-- show time  -->
</body>

每次超时都会为m分配新值。 您应该初始化,m一次。

此外,minute0-59开始,所以你不能总是检查它是否等于m + 30,这是错误的做法

话虽如此,在服务器端进行此超时总是更好,在客户端有足够的方法来欺骗它