开发者问题收集

JavaScript Cookie 错误

2015-08-25
343

今天我尝试学习如何使用 cookie,一切进展顺利,直到我尝试让 cookie 保存您在页面上停留的总秒数,包括之前的访问。它不是像 1、2、3 那样递增计数,而是像 1、11、111、1111 那样计数。这是我的代码:

<!DOCTYPE html>
<html>
<head>
<script>

function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires;
}

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

var value = getCookie('value');

window.setInterval(function(){

    value = value + 1;
    document.getElementById("value").innerHTML = value;
    setCookie("value", value, 365);

}, 1000);

</script>
</head>
<body>
<p>
<span id="value">0</span>
</body>
</html>
1个回答

value 是字符串,因此 + 是连接,而不是加法。请使用:

value++;

(这会将其转换为数字,以便可以递增)

value = parseInt(value, 10) + 1;
Barmar
2015-08-25