JQuery, çerezleri bir tarayıcıya okuyabilir / yazabilir mi?


99

Basit bir örnek: Bir sayfada bazı öğelerin (div'ler veya tablo satırları gibi) olmasını istiyorum ve kullanıcının bunları seçmesine izin vermek istiyorum. Bu jQuery'de yeterince kolay görünüyor. Bir kullanıcının sunucu tarafı gönderi desteği olmadan tıkladığı öğeleri kaydetmek için, bir çerezin bunu yapmanın basit bir yolu olacağını düşünüyordum.

  1. Bu varsayım, bu durumda bir çerezin uygun olduğu varsayımıdır, doğru mu?
  2. Doğruysa, jQuery API'sinin varsayılan JavaScript API'lerinden daha güzel tanımlama bilgisi bilgilerini okumak / yazmak için bir yolu var mı?

Yanıtlar:


52

Bir çerez ayarlamak için varsayılan JavaScript "API" şu kadar kolaydır:

document.cookie = 'mycookie=valueOfCookie;expires=DateHere;path=/'

JQuery çerez eklentisini aşağıdaki gibi kullanın:

$.cookie('mycookie', 'valueOfCookie')

14
Evet, kurabiye yazmak kolaydır, ancak dizeleri falan ayırmanız gerektiğinden, onları okumak bir çeşit acıdır. Zaten JQuery kullanıyorsanız, çerez eklentisi güzel olabilir ...... Çerezleri okumakla ilgili can sıkıcı bir şey, bazı tarayıcıların son noktalı virgülü kaldırması ve bazılarının kaldırmamasıdır .... başka birinin işlem yapması güzel hepsi.
Peter Ajtai

8
Oh, ve JQuery çerez eklentisi sadece 40 satır JS'dir ... ve onu isteğinize göre düzenleyebilirsiniz, böylece soyutlama tehlike bölgesine giriyormuş gibi hissetmezsiniz.
Peter Ajtai

3
İstendiği gibi jQuery ile ilgili değil. Peter Ajtai'nin yorumu casademora'nın neden Javascript yerine jQuery eklentisi istediğini gösteriyor.
CallMeLaNN

4
İşte ölü bağlantılarda veya hatalı çalışan eklentilerde
Wiebe Tijsma

18

Çerez işlevine birkaç ek imza sağlayan çerez eklentisine ihtiyacınız olacak.

$.cookie('cookie_name', 'cookie_value')geçici bir tanımlama bilgisi depolar (yalnızca bu oturumun kapsamında bulunurken $.cookie('cookie_name', 'cookie_value', 'cookie_expiration"), oturumlar arasında kalıcı olacak bir tanımlama bilgisi oluşturur - bkz. http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/ daha fazla bilgi için JQuery çerez eklentisinde.

Sitenin tamamı için kullanılan çerezleri ayarlamak istiyorsanız, bunun gibi JavaScript kullanmanız gerekir:

document.cookie = "name=value; expires=date; domain=domain; path=path; secure"

1
Görünüşe göre bu bağlantı bu yazı itibariyle öldü
Mark Schultheiss

11

Çerez alımı ve manipülasyonu için formlar için bağlama içeren yeni bir jQuery eklentisi: http://plugins.jquery.com/project/cookies


3
Bağlantıyı çok hızlı okuyan herkes için, bunu Alex Fort'un yanıtından farklı bir cevap haline getirmek için çerezin sonundaki 's' işaretine dikkat edin
Patrick


1
@Zidad, Giver Of Cookies ile bağlantılı olan aynı eklenti değildir.
Bağladığı kişi

@JAAulde Ah bunun farkında değildim. Çünkü bağlantı kesildi :) Teşekkürler!
Wiebe Tijsma

7

Sorunuza cevap vermek için evet. Diğeri bu bölümü cevapladı, ama aynı zamanda bunu yapmanın en iyi yolu mu diye soruyorsunuz gibi görünüyor.

Muhtemelen ne yaptığınıza bağlı olacaktır. Tipik olarak, bir kullanıcının satın almak istediği ürünleri tıklaması gerekir (örneğin sipariş verme). Sonra bir satın al veya satın al düğmesine basarlardı. Daha sonra form bir sayfaya gönderilir ve sonucu işler. Bunların hepsini bir kurabiye ile yapabilirsiniz ama ben daha zor bulabilirim.

İkinci sorunuzu başka bir konuya göndermeyi düşünebilirsiniz.



4

"Çerez" ile etiketlenmiş tüm jQuery eklentilerine buradan göz atabilirsiniz:

http://plugins.jquery.com/plugin-tags/cookies

Orada birçok seçenek var.

HTML5'in localStorage özelliğinden yararlanan jQuery Storage adlı depoya göz atın. LocalStorage mevcut değilse, varsayılan olarak çerezlerdir. Ancak, son kullanma tarihi belirlemenize izin vermez.


4

Görünüşe göre jQuery çerez eklentisi indirilemiyor. Bununla birlikte, jQuery & Cookies (get / set / delete ve bir eklenti) bölümünde açıklanan bazı iyileştirmelerle aynı jQuery çerez eklentisini indirebilirsiniz .


Ayrıca, çerez eklentisi geliştirmenin ilk sürümden beri orada durduğunu ve jQuery 1.4 * ile uyumlu olup olmadığından emin olmadığımı fark
ettim

Eklenti, genişleyen sözdizimi o zamandan beri değişmediği için jQuery 1.4 ile uyumludur ...
jQuery Lover

2

Klaus Hartl'ın çerez komut dosyasını kullanarak kullanıcının kendi dilini seçmesine izin veren bir komut dosyası yazmayı başardım . Birkaç saat çalışmam gerekti ve umarım başkalarına yardım edebilirim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.