Czy jQuery może odczytywać / zapisywać pliki cookie w przeglądarce?

99

Prosty przykład: chcę mieć na stronie pewne elementy (takie jak elementy div lub wiersze tabeli) i chcę, aby użytkownik kliknął je, aby je zaznaczyć. Wydaje się to dość łatwe w jQuery. Pomyślałem, że aby zapisać, które elementy klika użytkownik bez zwrotów po stronie serwera, pomyślałem, że plik cookie będzie prostym sposobem na zrobienie tego.

  1. Czy to założenie, że plik cookie jest w tym przypadku w porządku, jest prawidłowe?
  2. Jeśli jest poprawna, czy interfejs API jQuery ma jakiś sposób na odczyt / zapis informacji z plików cookie, który jest lepszy niż domyślne interfejsy API JavaScript?
casademora
źródło

Odpowiedzi:

52

Domyślne „API” JavaScript umożliwiające ustawienie pliku cookie jest tak proste, jak:

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

Użyj wtyczki plików cookie jQuery, takich jak:

$.cookie('mycookie', 'valueOfCookie')
Adam
źródło
14
Tak, pisanie ciasteczek jest łatwe, ale czytanie ich jest trochę uciążliwe, ponieważ trzeba rozdzielać struny i takie tam. Jeśli już używasz JQuery, wtyczka plików cookie może być fajna ...... Irytującą rzeczą w czytaniu plików cookie jest to, że niektóre przeglądarki usuwają ostatni średnik, a inne nie ... miło mieć kogoś innego do obsługi wszystko to.
Peter Ajtai
8
Aha, i wtyczka cookie JQuery to tylko 40 linii JS ... i możesz ją edytować według własnego uznania, aby nie czuć, że wchodzisz w strefę niebezpieczeństwa abstrakcji.
Peter Ajtai
3
Nie dotyczy jQuery, jak pytano. Komentarz Petera Ajtai pokazuje, dlaczego casademora prosi o wtyczkę jQuery zamiast o Javascript.
CallMeLaNN
4
Oto aktualny link dla osób, które trafiły na niedziałające
Wiebe Tijsma
18

Będziesz potrzebować wtyczki do plików cookie, która zapewnia kilka dodatkowych podpisów do funkcji plików cookie.

$.cookie('cookie_name', 'cookie_value')przechowuje przejściowy plik cookie (istnieje tylko w ramach tej sesji, podczas gdy $.cookie('cookie_name', 'cookie_value', 'cookie_expiration")tworzy plik cookie, który będzie trwał przez sesje - więcej informacji można znaleźć na stronie http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/ we wtyczce plików cookie JQuery.

Jeśli chcesz ustawić pliki cookie używane w całej witrynie, musisz użyć JavaScript w następujący sposób:

document.cookie = "name=value; expires=date; domain=domain; path=path; secure"
Steve Moyer
źródło
1
wydaje się, że ten link jest martwy w chwili pisania tego tekstu
Mark Schultheiss
11

Nowa wtyczka jQuery do pobierania i manipulowania plikami cookie z wiązaniem dla formularzy itp .: http://plugins.jquery.com/project/cookies


źródło
3
Każdy, kto czyta odsyłacz zbyt szybko, powinien zwrócić uwagę na znak „s” na końcu pliku cookie, aby uzyskać inną odpowiedź niż ta, którą napisał Alex Fort
Patrick.
2
Oto lepszy link w momencie pisania github.com/carhartl/jquery-cookie
Wiebe Tijsma
1
@Zidad, który nie jest tą samą wtyczką, do której prowadzi Giver Of Cookies. Ten, który połączył, znajduje się teraz na code.google.com/p/cookies
JAAulde
@JAAulde Ach, nie zdawałem sobie z tego sprawy. Ponieważ link był martwy :) Dzięki!
Wiebe Tijsma
7

Odpowiadając na twoje pytanie, tak. Drugi odpowiedział na tę część, ale wygląda na to, że pytasz, czy to najlepszy sposób, aby to zrobić.

Prawdopodobnie zależy to od tego, co robisz. Zwykle użytkownik klika, jakie przedmioty chce kupić (na przykład zamawiając). Następnie klikali przycisk kup lub kasy. Następnie formularz był wysyłany na stronę i przetwarzał wynik. Mógłbyś to wszystko zrobić za pomocą ciasteczka, ale byłoby to trudniejsze.

Możesz rozważyć umieszczenie drugiego pytania w innym temacie.

SeanDowney
źródło
4

Możesz przeglądać wszystkie wtyczki jQuery z tagiem „cookie” tutaj:

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

Jest tam wiele opcji.

Sprawdź ten o nazwie jQuery Storage, który wykorzystuje localStorage HTML5. Jeśli localStorage nie jest dostępna, domyślnie używa plików cookie. Jednak nie pozwala ustawić wygaśnięcia.

Marshall Æon
źródło
4

Wygląda na to, że wtyczka do plików cookie jQuery nie jest dostępna do pobrania. Możesz jednak pobrać tę samą wtyczkę do plików cookie jQuery z pewnymi ulepszeniami opisanymi w jQuery & Cookies (pobierz / ustaw / usuń & wtyczkę) .

jQuery Lover
źródło
Zdaję sobie również sprawę, że rozwój wtyczki cookie zatrzymał się tam od pierwszego wydania i nie jestem pewien, czy jest zgodny z jQuery 1.4 *
CallMeLaNN
Wtyczka jest kompatybilna z jQuery 1.4, ponieważ składnia rozszerzająca nie zmieniła się od tamtego czasu ...
jQuery Lover
2

Udało mi się napisać skrypt pozwalający użytkownikowi na wybór języka, korzystając ze skryptu cookie od Klausa Hartla . Zajęło mi to kilka godzin pracy i mam nadzieję, że pomogę innym.

Porta Shqipe
źródło