2012-01-04 35 views
14

Uygulamamda tuhaf bir hata buldum ve Javascript ile olan küçük deneyimlerimden dolayı hata ayıklayamadım;javascript ile kalıcı çerezler ayarlama

Kalıcı bir tanımlama bilgisi oluşturmaya çalışıyorum; bu, kümesinden bir yıl sonra ölecek (büyük tarayıcılarda en yüksek değer) ancak tarayıcı kapatıldıktan sonra silinecek ve silinmeyecek, bu kodu kullanıyorum :

// Build the expiration date string: 
var expiration_date = new Date(); 
expiration_date . setYear (expiration_date . getYear() + 1); 
expiration_date = expiration_date . toGMTString(); 
// Build the set-cookie string: 
var cookie_string = "test_cookies = true; path=/; expires=" + expiration_date; 
// Create/update the cookie: 
document . cookie = cookie_string; 

Ben çerez yöneticisi eklentisi kullandığımda çerez oturumu etiketine sahip olduğunu fark ettik ve tarayıcı kapatıldı sonra bu etiketi ile sadece onlar kaldırılırsa

+1

Son kullanma tarihleri ​​Tarayıcı kapalıyken silinmesini ÖNLEYİN. Onlar için öyle. –

cevap

20
(Wordpress en gibi başkaları ve bu tür komut devam)

Söz diziminizi kodlama tarzımla değiştirdim (üstteki değişkenler, minimum yeniden döküm, vb.) Ve aşağıdaki örnek benim localhost oldukça iyi. Bir üretim sunucusunda sorun yaşıyorsanız

// Build the expiration date string: 
var expiration_date = new Date(); 
var cookie_string = ''; 
expiration_date.setFullYear(expiration_date.getFullYear() + 1); 
// Build the set-cookie string: 
cookie_string = "test_cookies=true; path=/; expires=" + expiration_date.toUTCString(); 
// Create or update the cookie: 
document.cookie = cookie_string; 

yanı çerezin alan ayarlamayı deneyin (www.quirksmode.org/js/cookies.html#link5)

2

Eğer getFullYear() ve setFullYear()Date örneğinin yöntemlerini yerine getYear() ve kullanma denedin setYear()? İkincisi, kullanımdan kaldırılmıştır, bkz. here.

bu yardımcı olur umarım! şerefe.

İlgili konular