2013-10-01 14 views
8

Bu sorunun binlerce kez sorulduğunu biliyorum, ancak cevapların hiçbiri bana aradığım şeyi vermiyor. Bazı bilgileri depolamak için jQuery cookie kullanıyorum, ancak tarayıcı kapatıldığında bunların süresinin dolmasını istiyorum. window.unload uygun bir seçenek değil (okuyun: çalışmıyor.)jQuery çerezlerinin oturum değişkenleri gibi süresi dolmak mümkün mü?

Sorum şudur: tarayıcının bir oturum gibi, kapandığında sona erecek çerezleriaslında mümkün mü? Eğer öyleyse, kimse nasıl biliyor mu?

Güncelleştirme: Son kullanma tarihi geçtikten sonra oldukça basittir: 0 (hangi işe yaramadı), sadece son kullanma tarihi geçmez. Bu, neden pek çok soru olmadığını açıklıyor.

Herkese teşekkürler.

+1

HTTP vardır için aşağıdaki özellik kullanmak gerekir. Doğru tarihleri ​​gönderirse RFC'leri ve uygulamayı kontrol edin. (Geçmişte olmalı.) – schlingel

cevap

18

oldukça basit çıkıyor: Sen (yaklaşık orijinal dosyadaki satır 57 var) şöyle jQuery-Cookie kod uzatmak zorunda kalacak Son kullanma tarihi geçmedi. Bu, neden pek çok soru olmadığını açıklıyor.

Yani yerine şöyle bayraklarıyla son kullanma geçen:

$.cookie(key, value, { expiry: 0, domain: '', path: '' }); 

Sadece son kullanma değeri atlayın:

$.cookie(key, value, { domain: '', path: '' }); 

Ve işe yarıyor. Bu çok basit bir şey, beni şaşırttı.

Yine de teşekkürler! Bu

$.cookie.defaults = { path: '/', expires: 365 }; 

gibi varsayılan bir kurulum kullanırsanız

2

RFC 2965 specification'da mümkündür. Bu, tarayıcıyı destekliyorsa çerez işleme kodunuzda ve "Discard" özelliğini ayarlamanız mümkün olabileceğini söyledi.

Şunu söyledi: jQuery çerezi, Discard-özelliğini desteklemiyor. (Işe yaramadı) 0, sadece don: yerine son kullanma geçme,

 return (document.cookie = [ 
      config.raw ? key : encodeURIComponent(key), 
      '=', 
      config.raw ? value : encodeURIComponent(value), 
      options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE 
      options.path ? '; path=' + options.path : '', 
      options.domain ? '; domain=' + options.domain : '', 
          options.discard ? '; Discard=' + options.discard : '', 
      options.secure ? '; secure' : '' 
     ].join('')); 
0

o zaman son kullanma tarihleri ​​göndermek için her çerez değeri

$.cookie(key, value, { expires: null }); 
İlgili konular