//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版本观察过这个。
我在这里遗漏了什么?
答案 0 :(得分: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=/";
}