-3
<HEAD>
<SCRIPT LANGUAGE="JavaScript">

var time_left = 50;
var cinterval;
var timestatus=1;

function time_dec(){
    time_left--;
    document.getElementById('countdown').innerHTML = time_left;
    if(time_left == 0){
        clearInterval(cinterval);
    }
}

function resumetime()
{
    //time_left = 50;
    clearInterval(cinterval);
    cinterval = setInterval('time_dec()', 1000);
}

function defaultstart()
{
    time_left = 50;
    clearInterval(cinterval);
    cinterval = setInterval('time_dec()', 1000);
}

function stopstarttime()
{
    if(timestatus==1)
{
    clearInterval(cinterval);
    document.getElementById('stopbutton').value="Start";
    timestatus=0;
}
    else
{
    clearInterval(cinterval);
    cinterval = setInterval('time_dec()', 1000);
    document.getElementById('stopbutton').value="Stop";
    timestatus=1;
}
}

defaultstart();

</SCRIPT>
</HEAD>

<body>
Redirecting In <span id="countdown">50</span>.
<INPUT TYPE="button" value="stop" id="stopbutton" onclick="stopstarttime()">
</body>
</HTML>


我是初学者。我有 10 个问卷页。此计时器是否有可能在页面更改/刷新时不刷新。对于不同的用户,它应该有不同的工作方式。如果可能,请帮助我。

4

1 回答 1

0

您可以将计时器应结束的时间戳存储在 cookie 或 localStorage 中。然后使用这个 cookie 来显示正确的计数器。此解决方案不是 100% 安全的(如果用户知道如何通过开发人员控制台更改 cookie/localStorage,则可以更改此 cookie 的值以使计数器持续更长时间),因此不要在这不好的情况下使用它.

var timeLeft = 50;
if( window.localStorage ) {
  if( !localStorage.getItem( 'endTimer' ) ) {
    localStorage.setItem( 'endTimer', new Date().getTime() + (timeLeft * 1000) );
  }
}

以毫秒为单位的时间是 then localStorage.getItem( 'endTimer' ) - new Date().getTime()

于 2013-08-01T11:36:59.283 回答