有谁知道可以在javascript中将对象分配到cookie中吗?如果是的话,我们怎么做呢?
答案 0 :(得分:6)
如果您可以将对象序列化为其规范字符串表示形式,并且可以从所述字符串表示形式将其反序列化为其对象形式,则可以将其放入cookie中。
根据您earlier question关于将window.open()
的结果存储到Cookie中的判断,这不是您希望的答案。
答案 1 :(得分:3)
这是一种方法,
阅读Cookie时,只需撤消该过程。
您必须使用版本1 Cookie,因为需要引用Base64字符集。如果您想使用旧的Netscape样式cookie,则需要使用URL安全的Base64编码器。
当然,这只适用于小物件。
答案 2 :(得分:1)
您需要序列化您的对象,然后将其作为文本写出来。我会考虑使用JSON,因为它得到了很好的支持。
有一个很好的解析器here。您只需要调用JSON.stringify()方法。要在javascript中编写cookie,您需要以正确的格式附加一个字符串
window.document.cookie
字符串应采用以下格式
'name=cookiename; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/'
答案 3 :(得分:0)
Serializing Javascript Objects into Cookies
var expires = new Date();
expires.setDate(expires.getDate() + 7); // 7 = days to expire
document.cookie = "logintoken=somelogintoken;expires=" + expires.toGMTString();
同时阅读JavaScript Cookies。
答案 4 :(得分:0)
Cookies只存储字符串值,因此您需要以某种方式将对象序列化为字符串。当你从cookie中读取它时,反序列化它。但是,只有当您的对象具有一些简单的数据(字符串,数字,数组),并且无法使用函数时,这才有效。我也不确定你为什么要那样做。
答案 5 :(得分:0)
Cookie只能保存文本,因此如果您需要将对象序列化为一个简单的字符串,则可以使用它。
在大多数浏览器中,Cookie限制为+ - 4096字节,因此您无法存储太多信息。
答案 6 :(得分:-2)
我认为只允许4kb的cookie