我试图创建一个应用程序,它采用多个值与cookie,但似乎我的setCookie函数不接受多个,而是在我输入新值时替换每个值,因此showCookie函数只显示输入的最后值。
setCookie:
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
storeValues功能:
function storeValues()
{
var note= document.getElementById("note").value;
setCookie("note",note,365);
alert("Cookies stored!")
}
显示功能:
function show()
{
var note= document.getElementById("note").value;
alert("Note:" + note );
}
function showall()
{
var allcookies = document.cookie;
alert("All Cookies : " + allcookies );
// Get all the cookies pairs in an array
cookiearray = allcookies.split(';');
// Now take key value pair out of this array
for(var i=0; i<cookiearray.length; i++){
name = cookiearray[i].split('=')[0];
value = cookiearray[i].split('=')[1];
alert("Key is : " + name + " and Value is : " + value);
}
}
您需要将赋值操作符(=
)更改为连接和赋值复合操作符(+=
)
如果cookie密钥存在,覆盖它也是一个好主意。因此,我建议将cookie值转换为对象,修改它们,然后序列化回cookie字符串。