JavaScript 秒表保存在 cookie 中

JavaScript stopwatch saving in cookies

本文关键字:cookie 存在 保存 JavaScript      更新时间:2023-09-26

我是JavaScript的初学者,我在一个网站上工作,但我被卡在了我正在制作的秒表上。

我需要类似的东西,我在计时器中.php我有一个秒表; 当我们按开始时,它从 00:00:00 开始计数,如果我移动到第 exemple1 页.php 我不希望秒表停止计数,我希望秒表只是继续计数,当我回到计时器时.php秒表只是继续向前计数,直到我按下停止按钮,当我按下它只是停止在该值时, 例如 00:20:00。

在这里,我被困住了。当我移动到另一页时,因为秒表刚刚停止,我不希望我想要秒表只是继续计数,当我再次移动到计时器时.php我看到秒表计数并且没有在 00:00:00 停止。

这是我的代码:

演示 - Jsfiddle

定时器.php

    <script language=javascript>
if ((localStorage.getItem("ongoingh1")) || (localStorage.getItem("ongoingm1")) || (localStorage.getItem("ongoings1")) ){
    var h=0;
    var m=0;
    var s=0; 

    } else { 
    var h1,s1,m1;
    }

function to_start(){
switch(document.getElementById('btn').value)
{
case 'Pause':
    window.clearInterval(tm); 
    document.getElementById('2btn').value=str;
    document.getElementById('btn').value='Start';
break;
case 'Start':
    tm=window.setInterval('disp()',1000);
    document.getElementById('btn').value='Pause';
break;
}    }
function disp(){
if(s<10) {
    s1='0' + s;
} else {
    s1=s;
}
if(m<10) {
    m1='0' + m;
} else {
     m1=m;
}
if(h<10){
    h1='0' + h;
} else {
     h1=h;
}
// Display the output //
str= h1 + ':' + m1 +':' + s1 ;
document.getElementById('n1').innerHTML=str;

if(s<59){ 
    s=s+1;
}else{
    s=0;
    m=m+1;
if(m==60){
    m=0;
    h=h+1;
} 
}     
localStorage.ongoingh1 = h;
localStorage.ongoingm1 = m;
localStorage.ongoings1 = s;
}
    </script>
    <input type="button" name="btn" id='btn' value="Start" onclick="to_start()";>
    <br><br>
    <div id="n1" class='n1' style="z-index: 2; position: relative; right: 0px; top: 10px;
    width: 100px; padding: 10px; color: black; font-size:20px; border: #0000cc 2px dashed; ">00:00:00</div>
    <br>
    <br>
    <br>
    <input type="text" name="2btn" id='2btn' value="" />
    <br>
    <br>
    <br>

示例1.php

<script language=javascript>
 var s1,m1,h1;
     h=localStorage.ongoingh1;
     m=localStorage.ongoingm1;
     s=localStorage.ongoings1;

function to_start(){
    switch(document.getElementById('btn').value)
    {
    case 'Pause':
        window.clearInterval(tm); 
        document.getElementById('2btn').value=str;
        document.getElementById('btn').value='Start';
    break;
    case 'Start':
        tm=window.setInterval('disp()',1000);
        document.getElementById('btn').value='Pause';
    break;
    }
}

function disp(){
    if(s<10) {
         s1="0" + s;
    } else {
         s1=s;
    }
    if(m<10) {
         m1="0" + m;
    } else {
         m1=m;
    }
    if(h<10){
         h1="0" + h;
    } else {
         h1=h;
    }
    // Display the output //
    str= h1 + ':' + m1 +':' + s1 ;
    document.getElementById('n1').innerHTML=str;
    if(s<59){ 
        s++;
    }else{
        s=0;
        m++;
    if(m==60){
        m=0;
        h++;
    } 
    }
}
</script>

如果你不需要旧的浏览器支持,你可以使用HTML5的localstorage功能。存储您的值并在每次加载新页面时加载它。

计时器.php

         <script language=javascript>

 function settimer(){
 if ((localStorage.getItem("ongoingh1")) || (localStorage.getItem("ongoingm1")) || (localStorage.getItem("ongoings1")) ){
     h=localStorage.ongoingh1;
     m=localStorage.ongoingm1;
     s=localStorage.ongoings1; 
tm=window.setInterval('disp()',1000);
document.getElementById('btn').value='Pause';
    } else { 
    var h1,s1,m1;
    }
    str= h + ':' + m +':' + s ;
    document.getElementById('n1').innerHTML=str;
    document.getElementById('btn').value='Pause';
    }
function to_start(){
switch(document.getElementById('btn').value)
{
case 'Pause':
    window.clearInterval(tm); 
    document.getElementById('2btn').value=str;
    document.getElementById('btn').value='Start';
break;
case 'Start':
    tm=window.setInterval('disp()',1000);
    document.getElementById('btn').value='Pause';
break;
}    }
function disp(){
if(s<10) {
    s1='0' + s;
} else {
    s1=s;
}
if(m<10) {
    m1='0' + m;
} else {
     m1=m;
}
if(h<10){
    h1='0' + h;
} else {
     h1=h;
}
// Display the output //
str= h1 + ':' + m1 +':' + s1 ;
document.getElementById('n1').innerHTML=str;
localStorage.ongoingh1 = h;
localStorage.ongoingm1 = m;
localStorage.ongoings1 = s;
if(s<59){ 
    s++;
}else{
    s=0;
    m++;
if(m==60){
    m=0;
    h++;
} 
}     

}
    </script>
<body onload="settimer()">
    <input type="button" name="btn" id='btn' value="Start" onclick="to_start()";>
    <br><br>
    <div id="n1" class='n1' style="z-index: 2; position: relative; right: 0px; top: 10px;
    width: 100px; padding: 10px; color: black; font-size:20px; border: #0000cc 2px dashed; ">00:00:00</div>
    <br>
    <br>
    <br>
    <input type="text" name="2btn" id='2btn' value="" />
    <br>
    <br>
    <br>
    </body>

例1.php

       <script language=javascript>

 function settimer(){
 if ((localStorage.getItem("ongoingh1")) || (localStorage.getItem("ongoingm1")) || (localStorage.getItem("ongoings1")) ){
     h=localStorage.ongoingh1;
     m=localStorage.ongoingm1;
     s=localStorage.ongoings1; 
tm=window.setInterval('disp()',1000);
document.getElementById('btn').value='Pause';
    } else { 
    var h1,s1,m1;
    }
    str= h + ':' + m +':' + s ;
    document.getElementById('n1').innerHTML=str;
    document.getElementById('btn').value='Pause';
    }

function to_start(){
    switch(document.getElementById('btn').value)
    {
    case 'Pause':
        window.clearInterval(tm); 
        document.getElementById('2btn').value=str;
        document.getElementById('btn').value='Start';
    break;
    case 'Start':
        tm=window.setInterval('disp()',1000);
        document.getElementById('btn').value='Pause';
    break;
    }
}

function disp(){
    if(s<10) {
         s1="0" + s;
    } else {
         s1=s;
    }
    if(m<10) {
         m1="0" + m;
    } else {
         m1=m;
    }
    if(h<10){
         h1="0" + h;
    } else {
         h1=h;
    }
    // Display the output //
    str= h1 + ':' + m1 +':' + s1 ;
    document.getElementById('n1').innerHTML=str;
localStorage.ongoingh1 = h;
localStorage.ongoingm1 = m;
localStorage.ongoings1 = s;
    if(s<59){ 
        s++;
    }else{
        s=0;
        m++;
    if(m==60){
        m=0;
        h++;
    } 
    }
}
</script>
<body  onload="settimer()">
<input type="button" name="btn" id='btn' value="Start" onclick="to_start()";>
    <br><br>
    <div id="n1" class='n1' style="z-index: 2; position: relative; right: 0px; top: 10px;
    width: 100px; padding: 10px; color: black; font-size:20px; border: #0000cc 2px dashed; ">00:00:00</div>
    <br>
    <br>
    <br>
    <input type="text" name="2btn" id='2btn' value="" />
    <br>
    <br>
    <br></body>