У меня есть простой хронограф 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)
, не используйте строки, так как это вызывает дополнительную оценку. - person epascarello   schedule 27.02.2013