我使用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;
}
答案 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