2009-10-12 50 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 }); 

可選參數包括 '路徑' ..這應該是 '/'

相關問題