web-dev-qa-db-fra.com

JQuery peut-il lire / écrire des cookies sur un navigateur?

Exemple simple: je veux avoir certains éléments sur une page (comme des divs ou des lignes de tableau) et je veux laisser l'utilisateur cliquer dessus pour les sélectionner. Cela semble assez facile dans jQuery. Pour enregistrer les éléments sur lesquels un utilisateur clique sans retour arrière côté serveur, je pensais qu'un cookie serait un moyen simple de le faire.

  1. Cette hypothèse est-elle qu'un cookie est OK dans ce cas, correct?
  2. S'il est correct, l'API jQuery dispose-t-elle d'un moyen de lire/écrire des informations de cookie plus agréables que les API JavaScript par défaut?
98
casademora

"API" JavaScript par défaut pour configurer un cookie est aussi simple que:

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

Utilisez le plugin jQuery cookie comme:

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

Vous aurez besoin du plugin cookie, qui fournit plusieurs signatures supplémentaires à la fonction cookie.

$.cookie('cookie_name', 'cookie_value') stocke un cookie transitoire (n'existe que dans la portée de cette session, tandis que $.cookie('cookie_name', 'cookie_value', 'cookie_expiration") crée un cookie qui durera d'une session à l'autre - voir http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery / pour plus d'informations sur le plug-in JQuery cookie.

Si vous souhaitez définir des cookies utilisés pour l'ensemble du site, vous devez utiliser JavaScript de la manière suivante:

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

Un nouveau plugin jQuery pour la récupération de cookies et la manipulation avec liaison pour les formulaires, etc.: http://plugins.jquery.com/project/cookies

11
Giver of Cookies

Pour répondre à ta question, oui. Les autres ont répondu à cette partie, mais il semble également que vous demandez si c'est la meilleure façon de le faire.

Cela dépendra probablement de ce que vous faites. Généralement, un utilisateur clique sur les articles qu'il souhaite acheter (par exemple, lors de la commande). Ensuite, ils appuieraient sur un bouton d’achat ou de paiement. Ensuite, le formulaire serait envoyé à une page et traiterait le résultat. Vous pouvez faire tout cela avec un cookie mais je trouverais que c'est plus difficile.

Vous pouvez envisager de poser votre deuxième question dans un autre sujet.

7
SeanDowney

Jetez un coup d'oeil au Cookie Plugin pour jQuery.

5
Ian

Vous pouvez parcourir tous les plugins jQuery marqués avec "cookie" ici:

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

Beaucoup d'options là-bas.

Découvrez celui appelé jQuery Storage, qui tire parti du stockage local de HTML5. Si localStorage n'est pas disponible, les cookies sont utilisés par défaut. Cependant, cela ne vous permet pas de définir une expiration.

4
Marshall Æon

Il semble que le plugin jQuery cookie ne soit pas disponible au téléchargement. Cependant, vous pouvez télécharger le même plugin jQuery cookie avec les améliorations décrites dans jQuery & Cookies (obtenir/définir/supprimer et un plugin).

4
jQuery Lover

J'ai réussi à écrire un script permettant à l'utilisateur de choisir sa langue, en utilisant le script de cookie de Klaus Hartl . Cela m'a pris quelques heures de travail et j'espère pouvoir aider les autres.

2
Porta Shqipe