ฉันมีโครโนกราฟ 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