1

我正在尝试创建一个应用程序,它使用 cookie 接收多个值,但是似乎我的 setCookie 函数没有接收多个值,而是在我输入新值时替换每个值,因此 showCookie 函数只显示最后输入的值.

设置饼干:

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;
}

存储值函数:

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);
}
}
4

1 回答 1

0

您需要将赋值运算符 ( =) 更改为连接和赋值复合运算符 ( +=)。

如果存在 cookie 密钥,覆盖它也是一个好主意。所以我建议将 cookie 值转换为一个对象,修改它们,然后序列化回一个 cookie 字符串。

于 2013-01-04T00:55:17.513 回答