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 に答える