2009-10-12 96 views
1

我的网站每页都有一个cookie。当地址是这样的时候,它工作正常。 http://mydomain.com/index.html或其他。与所有文件夹兼容的cookie

但是当我有一个页面,是一个文件夹中这样 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"); 
    }; 
}); 
+0

你不显示你在哪里设置和读取Cookie的代码,所以没有办法知道你做错了什么。 – 2009-10-12 18:01:19

回答

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”,如果你想使用子域名,顺便说一句...

+0

这工作得很好!谢谢+1 :) – PHPNooblet 2009-10-12 19:06:16

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

可选参数包括 '路径' ..这应该是 '/'

相关问题