是否有可能,我有一些列表,我想将它存储在浏览器上,如果不可能,这样做的有效方法是什么?
答案 0 :(得分:73)
JSON对其进行编码,有效地生成一个类似"{name:'myname',age:'myage'}"
的字符串,您可以将其放入cookie中,在需要时检索并解码回JavaScript数组/对象。
示例 - 将数组存储在cookie中:
var arr = ['foo', 'bar', 'baz'];
var json_str = JSON.stringify(arr);
createCookie('mycookie', json_str);
稍后,将cookie的内容检索为数组:
var json_str = getCookie('mycookie');
var arr = JSON.parse(json_str);
注意: Cookie功能不是原生的,取自How do I create and read a value from cookie?
答案 1 :(得分:29)
一种快速方法是使用适当的分隔符将join()
数组转换为单个字符串:
var a = [1, 2, 3, 4];
a.join('|'); // Returns: "1|2|3|4"
然后只需使用字符串split()
方法从cookie字符串中恢复数组。
答案 2 :(得分:3)
对于数组中的每个值id,请尝试以下方法将值保存在cookie数组中:
<script type="text/javascript">
/**
* set cookie
*/
function set_cookie(cookiename, cookievalue, hours) {
var date = new Date();
date.setTime(date.getTime() + Number(hours) * 3600 * 1000);
document.cookie = cookiename + "=" + cookievalue + "; path=/;expires = " + date.toGMTString();
}
set_cookie('item['+id+']', id, 24*365*10); // 10 years
</script>
你可以在php中检索这个数组:
<?php
foreach($_COOKIE['item'] as $e){
echo $e,'<br />';
}
?>