我正在尝试在Cookie中存储多个值(integer
,boolean
),我想将;
用作分隔符;
function setCookie(name, downloaded, dontAskAgain, days) {
deleteCookie(name);
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
var cdata = downloaded + delimiter + dontAskAgain;
document.cookie = name +="=" + cdata + ";" + expires + "; path=/";
}
function deleteCookie(name) {
document.cookie = [name, '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.', window.location.host.toString()].join('');
}
我在这里做错了什么,导致新的价值
setCookie("MyCookie", 0, false, 31)
未设定。 有没有更好的方法只使用js(而不是jquery lib。)?
答案 0 :(得分:0)
浏览器使用分号进行本机cookie分隔,而你的cookie会让它感到困惑。
尝试:
document.cookie = [name, encodeURIComponent('=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.'), window.location.host.toString()].join('');
//or
document.cookie = encodeURIComponent([name,'=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.', window.location.host.toString()].join(''));
在阅读cookie时你必须解码它。