我的PHP中有这个功能:
setcookie("UserPusser", $user, time() + 604800, "/pusser/beta/");
setcookie("PassPusser", $pass, time() + 604800, "/pusser/beta/");
setcookie("NotifPusser", $notif, time() + 604800, "/pusser/beta/");
我在javascript中有这个功能
function getThisCookie(name){
var value;
var singleCookie = document.cookie.split(";")
for(var x in singleCookie){
var y = singleCookie[x].split("=");
if(y[0] == name) {
value = y[1];
}
}
return value;
}
当我输入alert(getThisCookie('UserPusser'))
时,结果就是我想要的。但是当我尝试编写alert(getThisCookie('NotifPusser'));
或alert(getThisCookie('PassPusser'));
时,结果为:undefined。
任何人都可以帮助我?
我要做的是让浏览器在每次页面重新加载时都记住复选框的值。
答案 0 :(得分:0)
只是为了完整性,这里有一个完整的答案,而不仅仅是评论中的提示:
Cookie值以;
分隔(分号+空格)
这会让你有这样的事情:
cookie = 'a=123; b=456; c=678'
为了将它们分开,你必须用相同的分隔符拆分它们。 使用现代浏览器(我认为JS 1.6+,现在还不太确定)或像underscore.js这样的库你也可以把它们放到一个对象中。
// if your browser supports 'reduce'
var cookieObject = document.cookie.split('; ').reduce(function(o, kvp) {
var split_kvp = kvp.split('=');
o[split_kvp[0]] = split_kvp[1];
return o;
}, {});
// underscore.js version
var cookieObject = _.reduce(document.cookie.split('; '), function(o, kvp) {
var split_kvp = kvp.split('=');
o[split_kvp[0]] = split_kvp[1];
return o;
}, {});
无论如何,在执行任何这些操作后,您可以轻松访问您要查找的值:
cookieObject.a == 123
cookieObject.b == 456
请记住,这些是 readOnly 。为了修改它们,您必须将对象写回document.cookie
// again, modern browser version
document.cookie = Object.keys(cookieObject).map(function(key) {
return key + '=' + cookieObject[key];
}).join('; ');
// with underscore.js
document.cookie = _.chain(cookieObject).keys().map(function(key) {
return key + '=' + cookieObject[key];
}).value().join('; ')