0
//http://www.quirksmode.org/js/cookies.html
function createCookie(name,value,days) {
    var expires = "";
if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
            expires = "; expires="+date.toGMTString();
}
document.cookie = name+"="+value+expires+"; path=/";
}

我正在尝试在页面加载时使用上述函数创建 cookie。并尝试在 IE 10 的 javascript 控制台中使用以下代码观察 cookie 值。

function setCookieAndTrack () {
    createCookie ('test', 'someValue', 99);
    var test = 0;
    setInterval(function () {
            console.log('document.cookie -- ', document.cookie, " - ", test++, " - ", (new Date()).getTime());
    }, 1000);
}

然后在身体负载上调用上述函数

<body onload="setCookieAndTrack();">

这是我在没有任何缓存文件的情况下重新启动 IE 10 时得到的响应。

document.cookie -- test=someValue - 0 - 1376957958770 
document.cookie -- test=someValue - 1 - 1376957959753 
document.cookie -- test=someValue - 2 - 1376957960751 
document.cookie -- test=someValue - 3 - 1376957961749 
document.cookie -- test=someValue - 4 - 1376957962747 
document.cookie -- test=someValue - 5 - 1376957963746 
document.cookie -- test=someValue - 6 - 1376957964760 
document.cookie --  - 7 - 1376957965744 
document.cookie --  - 8 - 1376957966757 
document.cookie --  - 9 - 1376957967755 
document.cookie --  - 10 - 1376957968769 
document.cookie --  - 11 - 1376957969752 
document.cookie --  - 12 - 1376957970766 
document.cookie --  - 13 - 1376957971764 
document.cookie --  - 14 - 1376957972747 
document.cookie --  - 15 - 1376957973761 

问题是,这只发生在浏览器重新启动时。刷新页面后,cookie 值不会消失。

我在 Windows 7(64 位)上使用 IE 10 (10.0.9200.16660)。我在其他 IE 版本中也观察到了这一点。

我在这里错过了什么吗?

4

1 回答 1

3

试一试 - 尝试对值进行编码并改用 UTCString。根据 MDN,应该使用 toUTCString:https ://developer.mozilla.org/en-US/docs/Web/API/document.cookie

它实际上在文档中表示 GMT 字符串,但随后将您定向到 UTC。

function createCookie(name,value,days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        expires = "; expires="+date.toUTCString();
    }
    document.cookie = name+"="+encodeURIComponent(value)+expires+"; path=/";
}
于 2013-08-19T13:02:38.607 回答