适用于所有文件夹的cookie

时间:2009-10-12 17:59:31

标签: cookies

我的网站的每个页面都有一个Cookie。地址是这样的,它工作正常。 http://mydomain.com/index.html或其他什么。

但是当我有一个像这样的文件夹中的页面时 http://mydomain.com/folder/page.html

而不是使用我为所有其他页面设置的cookie,它只为该文件夹创建一个新的cookie。有没有办法为所有文件夹保留相同的cookie?或者我只是在做一些可怕的错误?

由于

我的代码 - 我在外部js中有这个。文件

$(document).ready(function(){
    var cookie = $.cookie('cookiename');
    if (cookie) {
    }
    else {
        $.cookie('cookiename', 'cookievalue');
    }
});

$(document).ready(function() {
    $('.watevevever').click(function() {
    var va = $('#watev').css('display');
        if (va == 'none'){
            $('#watev').fadeIn("slow");
            $.cookie('cookiename', 'cookievalue');
        }
        else {
            $('#watev').fadeOut("slow");
            $.cookie('cookiename', 'cookievalue');
        }
    });
    var va = $.cookie('cookiename');
    if (va == 'cookievalue') {
        $('#watev').css("display","none");
    };
});

2 个答案:

答案 0 :(得分:3)

如果你使用this plugin作为jQuery(它的源是here),通过查看源代码,你可以将一些额外的参数作为对象传递,作为第三个参数到$.cookie方法。


例如,从this tutorial开始,您可以添加到期日期:

$.cookie('the_cookie', 'the_value', { expires: 7 }); // set cookie with an expiration date seven days in the future

查看源代码,您有以下部分代码:

var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';


所以,我想你可以在作为第三个参数给出的对象中使用“path”属性,例如:

$.cookie('the_cookie', 'the_value', {path: '/'});

当然,如果你想为你网域上的每个路径设置cookie,这个'/'就是这种情况。


您还可以设置一些其他选项,例如“domain”,如果您想使用子域名,顺便说一句......

答案 1 :(得分:1)

$.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });

可选参数包括'path'..应该是'/'