如何在cookie中存储数组的每个内容

时间:2013-01-11 10:03:00

标签: javascript jquery

  

可能重复:
  how to store an array in jquery cookie?

如何在javascript中存储cookie中数组的每个内容,还必须检索数组的所有术语?  我尝试过,但我无法从饼干中取回物品......

我的代码低于我试过的

var myArray=["123","234","32"];
$.cookie('myCookie', escape(myArray), { expires: 1});
var s = unescape($.cookie('myCookie');

2 个答案:

答案 0 :(得分:0)

使用JQuery,您可以使用serialize函数检索字符串中的所有数据:http://api.jquery.com/serialize/

答案 1 :(得分:0)

要在JavaScript中创建Cookie,您必须为document.cookie分配一个字符串。

它采用name = value格式的值,例如

document.cookie = 'data=hello; max-age=60; path=/; domain=yoursite.com';

在此处存储数组的最佳方法是使用JSON和方法JSON.stringify()

var arr = ['hello', 'goodbye', 'au revoir'];
document.cookie = 'data=' + escape(JSON.stringify(arr)) + '; max-age=60; path=/; domain=yoursite.com'

(注意一个cookie必须<= 4KB)

检索cookie有点困难,因为它是一个字符串,所以我借用了这个函数,在字符串中搜索你的cookie名称然后返回它的值:

// Source: http://www.thesitewizard.com/javascripts/cookies.shtml

function get_cookie ( cookie_name )
{
    var cookie_string = document.cookie ;
    if (cookie_string.length != 0) {
        var cookie_value = cookie_string.match (
                        '(^|;)[\s]*' +
                        cookie_name +
                        '=([^;]*)' );
        return decodeURIComponent ( cookie_value[2] ) ;
    }
    return '' ;
}

在我们的示例中,您将使用它:

var cookie = get_cookie('data');
var arr = JSON.parse(cookie); // Convert JSON string back into array

注意我使用JSON.parse()将JSON字符串转换回JavaScript数组。

有关在JavaScript中使用Cookie的更多信息,建议您阅读:http://www.thesitewizard.com/javascripts/cookies.shtml