Jquery Cookies适用于不同的选项卡,而不是不同的浏览器会话

时间:2011-11-12 19:18:38

标签: browser cookies window restore

我正在使用jcookie存储某些信息(用户购物车),并且想法是在用户将来访问网站时重新显示购物车的内容。

因此,如果用户将项目添加到他的购物车中,i)关闭浏览器并在一段时间后打开新的浏览器窗口或者ii)打开一个新标签:在这两种情况下都应该看到该项目已添加到购物车

我正在使用jcookie.js库。 我用来创建cookie并向其添加购物车内容的代码是:

$.cookie('rented_car', $(rentContainer).html());
$.cookie('rented_car_timings', $(divRentalSumm).html());

当页面加载时,我的index.html

 <script type="text/javascript">
    window.onload=checkCookies; 
</script>

其中checkcookies()的定义如下:

function checkCookies(){
    var rented_car_timings_cookie = $.cookie("rented_car_timings");
    var $rentTimingsContainer = $('<div class="module">' + rented_car_timings_cookie + '</div>');

    var rented_car_cookie = $.cookie("rented_car");
    var $rentContainer = $('<div class="module">' + rented_car_cookie + '</div>');

    if(rented_car_timings_cookie && rented_car_cookie){
        $('#rentit').html('');
        $('#rentit').append($rentTimingsContainer);
        $('#rentit').append($rentContainer);
    }    
}

现在我遇到的问题是,如果我刷新同一页面或在同一个浏览器窗口中打开一个新标签,则cookie可以正常工作:我能够看到添加到购物车的内容。 但是,如果我打开一个新窗口,那么我看不出相同的情况。任何人都可以在我的逻辑中指出问题吗?

1 个答案:

答案 0 :(得分:1)

$.cookie('rented_car', $(rentContainer).html(),{ expires: 20});

用于显式设置到期时间,默认到期时间是浏览器会话关闭时。