Kann jQuery Cookies in einem Browser lesen / schreiben?

99

Einfaches Beispiel: Ich möchte einige Elemente auf einer Seite haben (z. B. Divs oder Tabellenzeilen) und den Benutzer darauf klicken lassen, um sie auszuwählen. Das scheint in jQuery einfach genug zu sein. Um zu speichern, auf welche Elemente ein Benutzer ohne serverseitige Post-Backs klickt, dachte ich, ein Cookie wäre eine einfache Möglichkeit, dies zu erreichen.

  1. Ist diese Annahme, dass ein Cookie in diesem Fall in Ordnung ist, richtig?
  2. Wenn es korrekt ist, hat die jQuery-API eine Möglichkeit, Cookie-Informationen zu lesen / schreiben, die besser sind als die Standard-JavaScript-APIs?
casademora
quelle

Antworten:

52

Die standardmäßige JavaScript- "API" zum Setzen eines Cookies ist so einfach wie:

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

Verwenden Sie das jQuery-Cookie-Plugin wie folgt:

$.cookie('mycookie', 'valueOfCookie')
Adam
quelle
14
Ja, das Schreiben von Cookies ist einfach, aber das Lesen ist eine Art Schmerz, da Sie Zeichenfolgen und andere Dinge teilen müssen. Wenn Sie JQuery bereits verwenden, könnte das Cookie-Plugin hilfreich sein. Eine nervige Sache beim Lesen von Cookies ist, dass einige Browser das letzte Semikolon entfernen und andere nicht. Schön, dass jemand anderes damit umgeht das alles.
Peter Ajtai
8
Oh, und das JQuery-Cookie-Plugin besteht nur aus 40 Zeilen JS ... und Sie können es nach Ihren Wünschen bearbeiten, sodass Sie nicht das Gefühl haben, die Gefahrenzone für Abstraktionen zu betreten.
Peter Ajtai
3
Nicht wie gewünscht mit jQuery verwandt. Der Kommentar von Peter Ajtai zeigt, warum Casademora anstelle von Javascript nach dem jQuery-Plugin fragt.
CallMeLaNN
4
Hier ist der aktuelle Link für die Leute, die auf toten Links oder fehlerhaften Plugins landen. Website: github.com/carhartl/jquery-cookie
Wiebe Tijsma
18

Sie benötigen das Cookie-Plugin, das mehrere zusätzliche Signaturen für die Cookie-Funktion bereitstellt.

$.cookie('cookie_name', 'cookie_value')speichert ein vorübergehendes Cookie (existiert nur im Umfang dieser Sitzung, während $.cookie('cookie_name', 'cookie_value', 'cookie_expiration")ein Cookie erstellt wird, das für alle Sitzungen gültig ist - siehe http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/ weitere Informationen finden auf dem JQuery-Cookie-Plugin.

Wenn Sie Cookies setzen möchten, die für die gesamte Website verwendet werden, müssen Sie JavaScript wie folgt verwenden:

document.cookie = "name=value; expires=date; domain=domain; path=path; secure"
Steve Moyer
quelle
1
scheint, dass dieser Link zum Zeitpunkt dieses Schreibens tot ist
Mark Schultheiss
11

Ein neues jQuery-Plugin zum Abrufen und Bearbeiten von Cookies mit Bindung für Formulare usw .: http://plugins.jquery.com/project/cookies


quelle
3
Wenn Sie den Link zu schnell lesen, beachten Sie das 's' am Ende des Cookies, um eine andere Antwort als die von Alex Fort zu erhalten
Patrick
2
Hier ist ein besserer Link zum Zeitpunkt des Schreibens von github.com/carhartl/jquery-cookie
Wiebe Tijsma
1
@ Zidad, das ist nicht das gleiche Plugin wie von Giver Of Cookies verlinkt. Die, die er verlinkt hat, ist jetzt unter code.google.com/p/cookies
JAAulde
@JAAulde Ah, das habe ich nicht bemerkt. Weil der Link tot war :) Danke!
Wiebe Tijsma
7

Um Ihre Frage zu beantworten, ja. Die anderen haben diesen Teil beantwortet, aber es scheint auch so, als würden Sie fragen, ob dies der beste Weg ist, dies zu tun.

Es würde wahrscheinlich davon abhängen, was Sie tun. Normalerweise muss ein Benutzer auf die Artikel klicken, die er kaufen möchte (z. B. Bestellung). Dann würden sie einen Kauf- oder Checkout-Button drücken. Dann würde das Formular an eine Seite gesendet und das Ergebnis verarbeitet. Sie könnten das alles mit einem Cookie machen, aber ich würde es schwieriger finden.

Möglicherweise möchten Sie Ihre zweite Frage in einem anderen Thema veröffentlichen.

SeanDowney
quelle
4

Sie können alle mit "cookie" getaggten jQuery-Plugins hier durchsuchen:

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

Viele Möglichkeiten dort.

Schauen Sie sich den jQuery-Speicher an, der den localStorage von HTML5 nutzt. Wenn localStorage nicht verfügbar ist, werden standardmäßig Cookies verwendet. Sie können den Ablauf jedoch nicht festlegen.

Marshall Æon
quelle
4

Es scheint, dass das jQuery-Cookie-Plugin nicht zum Download verfügbar ist. Sie können jedoch dasselbe jQuery-Cookie-Plugin mit einigen Verbesserungen herunterladen, die unter jQuery & Cookies beschrieben sind (Get / Set / Delete & ein Plugin) .

jQuery Lover
quelle
Mir ist auch klar, dass die Entwicklung des Cookie-Plugins dort seit der ersten Veröffentlichung gestoppt wurde und nicht sicher ist, ob es mit jQuery 1.4 * kompatibel ist
CallMeLaNN
Das Plugin ist kompatibel mit jQuery 1.4, da sich die erweiterte Syntax seitdem nicht geändert hat ...
jQuery Lover
2

Ich habe es geschafft, ein Skript zu schreiben, mit dem der Benutzer seine Sprache mithilfe des Cookie-Skripts von Klaus Hartl auswählen kann . Ich habe ein paar Stunden gearbeitet und hoffe, dass ich anderen helfen kann.

Porta Shqipe
quelle