您好我在此上下文中使用jquery cookie插件:
$(document).ready(function(){
$('a.close').click(function(){
var user = $('div.popup div.user_information').html();
$.cookie('the_cookie', user, {expires: "7",path: "/", domain: "domain.com"});
message = $.cookie('the_cookie');
$('div.last_seen').html(message);
});
});
当我点击“a.close”时,cookie正常工作,“div.user_information”的html保存在cookie中,并显示在html元素“div.last_seen”中。
目前的网址是:
domain.com/test/index.php#close
但是当我刷新这个网站时:
domain.com/test/index.php
似乎cookie会话结束,所以“div.last_seen”的内容也会消失。
有谁知道为什么?
问候和谢谢!!
使用此代码:
$(document).ready(function(){
$('a.close').click(function(){
var user = $('div.popup div.user').html();
$.cookie('the_cookie', user, {expires: 7, path: "/", domain: "domain.com"});
var message = $.cookie('the_cookie');
$('div.last_seen').html(message);
});
var message = $.cookie('the_cookie');
$('div.last_seen').html(message);
});
答案 0 :(得分:0)
编辑:我错过了非常关键的一点;问题在于,在加载DOM时,您从未实际加载cookie并更改HTML,只有在单击按钮后才能执行此操作。尝试复制这段代码并将其放在.click()
函数之外:
message = $.cookie('the_cookie');
$('div.last_seen').html(message);
另外......
看起来expires
属性的值是一个String,而不是像API建议的那样的整数。请尝试删除expires
值为7左右的引号,以获取:
$.cookie('the_cookie', user, {expires: 7, path: "/"});
注意:如果域与创建cookie的域相同,则没有理由在选项中设置domain
值,如本例所示。 (see this link)
编辑2:在回答有关存储多个值的评论时,只需存储JavaScript对象而不是String。尝试这样的事情:
var myCookie = {};
myCookie['user'] = $('div.popup div.user_information').html();
myCookie['otherValue'] = "some other value...";
$.cookie('the_cookie', myCookie, {expires: 7,path: "/"});
然后从您获得的cookie中访问这些值,执行以下操作:
var myCookie = $.cookie('the_cookie');
var message = myCookie.user; // or you could use myCookie['user']
var otherValue = myCookie.otherValue; // likewise, myCookie['otherValue'] is ok
$('div.last_seen').html(message);
答案 1 :(得分:0)
只是因为页面加载后没有调用cookie。它只是保存了div的内容,但是当页面刷新时你不会调用它。
<pre><code>
var cookie = $.cookie('the_cookie');
</code></pre>