2016-12-15 31 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與同名「數字」。 –