JQuery può leggere / scrivere cookie su un browser?


99

Semplice esempio: voglio avere alcuni elementi su una pagina (come div o righe di una tabella) e voglio che l'utente faccia clic su di essi per selezionarli. Sembra abbastanza facile in jQuery. Per salvare gli elementi su cui un utente fa clic senza post-back lato server, stavo pensando che un cookie sarebbe stato un modo semplice per farlo.

  1. Il presupposto che un cookie sia OK in questo caso è corretto?
  2. Se è corretto, l'API jQuery ha un modo per leggere / scrivere le informazioni sui cookie che sono più belle delle API JavaScript predefinite?

Risposte:


52

L '"API" JavaScript predefinita per l'impostazione di un cookie è facile come:

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

Utilizza il plug-in per cookie jQuery come:

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

14
Sì, scrivere i biscotti è facile, ma leggerli è un po 'una seccatura, dal momento che devi dividere stringhe e cose del genere. Se stai già usando JQuery, allora il plugin per cookie potrebbe essere carino ... Una cosa fastidiosa della lettura dei cookie è che alcuni browser rimuovono il punto e virgola finale e altri no ... è bello che qualcun altro lo gestisca tutto quello.
Peter Ajtai

8
Oh, e il plug-in per cookie JQuery contiene solo 40 righe di JS ... e puoi modificarlo secondo i tuoi desideri, in modo da non sentirti come se stessi entrando nella zona di pericolo dell'astrazione.
Peter Ajtai

3
Non correlato a jQuery come richiesto. Il commento di Peter Ajtai mostra perché casademora richiede il plugin jQuery invece di Javascript.
CallMeLaNN

4
Ecco il link aggiornato per le persone che finiscono in link morti o malfunzionanti nel sito plugins.jquery.com: github.com/carhartl/jquery-cookie
Wiebe Tijsma

18

Avrai bisogno del plug-in dei cookie, che fornisce diverse firme aggiuntive alla funzione cookie.

$.cookie('cookie_name', 'cookie_value')memorizza un cookie temporaneo (esiste solo nell'ambito di questa sessione, mentre $.cookie('cookie_name', 'cookie_value', 'cookie_expiration")crea un cookie che durerà per tutte le sessioni - vedere http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/ per ulteriori informazioni sul plug-in cookie JQuery.

Se desideri impostare i cookie che vengono utilizzati per l'intero sito, dovrai utilizzare JavaScript in questo modo:

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

1
sembra che questo collegamento sia morto al momento della stesura di questo documento
Mark Schultheiss

11

Un nuovo plug-in jQuery per il recupero e la manipolazione dei cookie con associazione per moduli, ecc: http://plugins.jquery.com/project/cookies


3
Per chiunque legga il link troppo velocemente, nota la 's' alla fine del cookie per rendere questa una risposta diversa da quella di Alex Fort
Patrick

2
Ecco un link migliore al momento della scrittura di github.com/carhartl/jquery-cookie
Wiebe Tijsma

1
@Zidad che non è lo stesso plugin collegato da Giver Of Cookies. Quello che ha collegato è ora su code.google.com/p/cookies
JAAulde

@JAAulde Ah non me ne rendevo conto. Perché il collegamento era morto :) Grazie!
Wiebe Tijsma

7

Per rispondere alla tua domanda, sì. Gli altri hanno risposto a quella parte, ma sembra anche che tu stia chiedendo se questo è il modo migliore per farlo.

Probabilmente dipenderà da quello che stai facendo. In genere, un utente fa clic sugli articoli che desidera acquistare (ad esempio, ordinando). Quindi avrebbero premuto un pulsante di acquisto o di pagamento. Quindi il modulo verrà inviato a una pagina ed elaborerà il risultato. Potresti fare tutto questo con un biscotto, ma troverei che sia più difficile.

Potresti considerare di pubblicare la tua seconda domanda in un altro argomento.



4

Puoi sfogliare tutti i plugin jQuery contrassegnati con "cookie" qui:

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

Ci sono molte opzioni lì.

Dai un'occhiata a quello chiamato jQuery Storage, che sfrutta localStorage di HTML5. Se localStorage non è disponibile, il valore predefinito è i cookie. Tuttavia, non ti consente di impostare la scadenza.


4

Sembra che il plugin jQuery cookie non sia disponibile per il download. Tuttavia, puoi scaricare lo stesso plug-in per cookie jQuery con alcuni miglioramenti descritti in jQuery e cookie (ottieni / imposta / elimina e un plug-in) .


Mi rendo anche conto che lo sviluppo del plugin per cookie si è fermato lì dalla prima versione e non sono sicuro che sia compatibile con jQuery 1.4 *
CallMeLaNN

Il plugin è compatibile con jQuery 1.4, poiché la sintassi di estensione non è cambiata da allora ...
jQuery Lover

2

Sono riuscito a scrivere uno script che consente all'utente di scegliere la propria lingua, utilizzando lo script dei cookie di Klaus Hartl . Mi ci sono volute alcune ore di lavoro e spero di poter aiutare gli altri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.