Jquery cookie仅在一个站点上活动

时间:2014-03-31 19:41:57

标签: javascript jquery cookies plugins

您好我在此上下文中使用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);
});

2 个答案:

答案 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>