我有一个简单的JavaScript计时器,它会显示在名为“d2”的表单字段上,用于检查某个任务完成所需的时间:
var milisec=0
var seconds=0
var complemento1=""
document.form1.d2.value='00:00:00'
function display(){
if (milisec>=9){
milisec=0
seconds+=1
}
else{
milisec+=1
}
complemento1=complemento2=complemento3="";
if ((seconds%60)<10) complemento1="0";
if ((Math.floor(seconds/60)%60)<10) complemento2="0";
if ((Math.floor(seconds/3600))<10) complemento3="0";
document.form1.d2.value=complemento3+Math.floor(seconds/3600)+":"+complemento2+(Math.floor(seconds/60)%60)+":"+complemento1+(seconds%60)
setTimeout("display()",100)
}
问题在于当用户打开新标签或使用其他程序时计时器会停止,然后在窗口再次获得焦点时恢复(使用Chrome)。它的行为非常奇怪,因为有时它有效,有时它无效。
我看到很多帖子都需要一个脚本在失去焦点时停止,而我则想要完全相反的效果,并且已经搜索了一个小时也没有找到解决方案。非常感谢您的帮助!
setTimeout(display,100)
,不要使用字符串,因为它会导致额外的评估。 - epascarello