jquery cookie插件/读写cookie

时间:2017-03-12 23:35:43

标签: javascript jquery html cookies

我使用jquery cookie插件构建了几个函数,我遇到了使它跨页面工作的问题。

我有set.html页面设置cookie,show.html显示页面。每次有人查看set.html随机键值对都会添加到cookie中。

当我记录数据时,set.html看起来像是设置并正确存储了cookie,但是当我去show.html时,只检索了第一个键/值。我尝试使用路径,但仍无效。

function savePage(ID, name){
  deleteAllCookies();
  $.cookie.json = true;
  var idContainer = ($.cookie('the_cookie_key_3')) || [];
  var idContainerVal = ($.cookie("the_cookie_key_val_3")) || {};
  console.log(typeof idContainer);
  console.log(idContainerVal);
  if (idContainer.indexOf(ID) === -1) { idContainer.push(ID); idContainerVal[ID] = name;}

  $.cookie('the_cookie_key_3', idContainer, { expires: 40});
  $.cookie('the_cookie_key_val_3', idContainerVal, { expires: 40 });
    console.log(idContainerVal);
}

function getSavedPages(){
    $.cookie.json = true;
    var idContainer = ($.cookie('the_cookie_key_val_3')) || {};
    console.log(idContainer);
    return idContainer;
} 

3 个答案:

答案 0 :(得分:0)

在第二个函数中,不要传递$.cookie()任何参数。你告诉它给你the_cookie_key_val_3

此外,第4行(以及类似的第5行)应该是这样的:

var idContainer = $.cookie('the_cookie_key_3') || '';

因为$.cookie(string)的结果会返回JSON字符串,或undefined

当然,在使用生产代码之前删除所有console.log()语句!

答案 1 :(得分:0)

您将Cookie设置为过期的时间太短。因此,它无法活得足够长,无法在其他页面中捕获它。

使用cookie来保存数据可能很棘手。根据我的经验,它只适用于我开始运行服务器时打开的页面。 而不是使用cookie使用localStorage。 LocalStorage允许您设置键和值。

localStorage.setItem("data", the_cookie_key_3)

密钥是数据,值是the_cookie_key_3

You can retrieve the data by using localStorage.getItem("data");

答案 2 :(得分:0)

我在不使用jquery cookie的情况下使用了它,而是使用了组合cookie和本地存储。这是代码

delta = 0.
dups = np.zeros(foo.shape[1:], dtype=bool)
for i in xrange(foo.shape[0]):
    for j in xrange(foo.shape[0]):
        if i==j: continue
        dups += abs(foo[i] - foo[j]) <= delta