2013-02-21 117 views
0

我得到了一个倒计时定时器脚本..我打算用它来进行在线测试..但是现在问题在于刷新页面时复位...JavaScript定时器在刷新页面时被重置

任何想法,以防止重置的时间,并继续没有任何问题,如果他们刷新页面?

这里是代码

<script> 

    var mins; 

    var secs; 

function cd() { 


    mins = 1 * m("2"); // change minutes here 
     secs = 0 + s(":01"); // change seconds here (always add an additional second to your total) 
     redo(); 

} 

function m(obj) { 
    for(var i = 0; i < obj.length; i++) { 
     if(obj.substring(i, i + 1) == ":") 
     break; 
    } 
    return(obj.substring(0, i)); 
} 

function s(obj) { 
    for(var i = 0; i < obj.length; i++) { 
     if(obj.substring(i, i + 1) == ":") 
     break; 
    } 
    return(obj.substring(i + 1, obj.length)); 
} 

function dis(mins,secs) { 
    var disp; 
    if(mins <= 9) { 
     disp = " 0"; 
    } else { 
     disp = " "; 
    } 
    disp += mins + ":"; 
    if(secs <= 9) { 
     disp += "0" + secs; 
    } else { 
     disp += secs; 
    } 
    return(disp); 
} 

function redo() { 
    secs--; 
    if(secs == -1) { 
     secs = 59; 
     mins--; 
    } 
    document.getElementById("disp").innerHTML=dis(mins,secs); // setup additional displays here. 

    if((mins == 0) && (secs == 0)) { 
     window.alert("Time is up. Press OK to continue."); // change timeout message as required 
     // window.location = "yourpage.htm" // redirects to specified page once timer ends and ok button is pressed 
    } else { 
     cd = setTimeout("redo()",1000); 
    } 
} 

function init() { 
    cd(); 
} 
window.onload = init; 

</script> 

回答

0

如果页面被刷新,你重新执行JavaScript代码。这是正常的行为。

如果您绝对需要继续离开,您可以使用本地存储API(仅适用于现代浏览器)来存储时间(每秒更新一次值)。

加载页面后,您可以检查该值是否存在于本地存储中,并从您的位置开始。

您确定需要此行为吗?

相关问题