你好,我正在制作一个测验应用程序,并且想要设置一个计时器。我想用 Javascript 来实现。这是我的功能:
function countDown(sec, elem) {
_(elem).innerHTML = sec;
if(sec < 1) {
clearTimeout(timer);
endGame ();
return;
}
sec--;
var timer = setTimeout('countDown('+sec+',"'+elem+'")',1000);
}
问题在于,例如,对于移动版 Saffari 浏览器,当您将手指放在屏幕上(如滚动效果)时,计时器停止,但您仍然可以看到问题...所以,基本上,您可以有无限的时间。如何让计时器无论如何都运行?
提前谢谢您!
最佳答案
“无论如何”您都无法让时间运行 - Mobile Safari 在触摸事件期间不会运行 setTimeout 和 setInterval 函数调用。事实上,在iOS6之前,事件被完全丢弃。
您应该使用 Date 构造函数进行健全性检查,并执行服务器端验证。如果有人真的想作弊,他们毕竟可以修改客户端上的 JavaScript。
关于javascript - 防止计时器在窗口处于非事件状态时停止 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19146482/