2016-12-15 26 views
1

我想把一个倒计时保存为一个cookie。我想做我最后倒数的曲奇,每次我重新加载时,都应该从倒数开始。但我的代码行为如此怪异。我不知道为什么。下面的代码片断保存后Cookie的行为怪异

window.onload = function() { 
 
    var a = document.cookie.split("="); 
 
    number = a[1]; 
 
} 
 
var number = setInterval(thetimer,1000); 
 

 

 
function thetimer() { 
 
    
 
    document.getElementById("demo3").innerHTML = number; 
 
    number += 1; 
 
    return number; 
 
} 
 

 

 
function alertf() { 
 
    var x; 
 
    if (confirm("Press any key?") == true) { 
 
     x = "you pressed ok"; 
 
    } else{ 
 
     x = "you pressed cancel"; 
 
    } 
 
    document.getElementById("demo").innerHTML = x; 
 
} 
 

 
function getname() { 
 
    var x; 
 
    var name = prompt("Lets us know your name", "Chunnu Mia"); 
 
    if(name == "") { 
 
     x = "What dont you telling??"; 
 
    } else { 
 
     x = name+"!!! What a uselessname hahaha!!!"; 
 
    } 
 
    document.getElementById("demo2").innerHTML = x; 
 
} 
 
document.cookie = "countdown="+number+";expires=Fri, 15 oct 2022 01:00:00 UTC";
<html> 
 
<head> 
 
    <title>BOM</title> 
 
    </head> 
 
<body> 
 
    
 
    <button onmouseover="alertf()">Dont touch me</button> 
 
    <button onmouseover="getname()">Whats your name?</button> 
 
    <p id="demo"></p> 
 
    <script src="index.js"></script> 
 
    <p id="demo2"></p> 
 
    <p id="demo3"></p> 
 
    <button onclick="clearInterval(timer)">Stop</button> 
 
    <p>01795923372</p> 
 
    </body> 
 
</html>

我应该怎么改?在这里

+0

请说明你的意思 - '行为如此怪异'。你期望看到什么,你有什么。 –

回答

0

number是一个区间的id,还有一个变量呢?

window.onload = function() { 
    var a = document.cookie.split("="); 
    number = Math.abs(a[1]); ///Just in case)) 
} 
var number = 0; 
var timer = setInterval(thetimer,1000); 


function thetimer() { 

    document.getElementById("demo3").innerHTML = number; 
    number += 1; 
    ///return number; 

    document.cookie = "countdown="+number+";expires=Fri, 15 oct 2022 01:00:00 UTC"; 

} 
+0

发生这种情况是因为cookie将所有内容转换为字符串?如果你向我解释一下,我会很感激。 –

+0

并感谢您解决它 –

+0

我认为,主要的错误是设置变量和区间ID与同名“数字”。 –