0

我有一个倒计时脚本..我打算用它进行在线考试..但现在的问题是它在刷新页面时正在重置......

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

这是代码

<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>
4

1 回答 1

0

如果页面被刷新,你所有的 javascript 代码都会重新执行。这是正常行为。

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

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

你确定你需要这种行为顺便说一句吗?

于 2013-02-21T08:10:27.370 回答