JQuery có thể đọc / ghi cookie vào trình duyệt không?


99

Ví dụ đơn giản: Tôi muốn có một số mục trên một trang (như div hoặc các hàng trong bảng) và tôi muốn để người dùng nhấp vào chúng để chọn chúng. Điều đó có vẻ dễ dàng trong jQuery. Để lưu những mục nào mà người dùng nhấp vào mà không có bài đăng phía máy chủ quay lại, tôi nghĩ rằng cookie sẽ là một cách đơn giản để thực hiện việc này.

  1. Giả định rằng một cookie là OK trong trường hợp này, đúng không?
  2. Nếu đúng, API jQuery có cách nào đó để đọc / ghi thông tin cookie đẹp hơn các API JavaScript mặc định không?

Câu trả lời:


52

JavaScript "API" mặc định để đặt cookie dễ dàng như sau:

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

Sử dụng plugin cookie jQuery như:

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

14
Vâng, viết cookie thì dễ, nhưng đọc chúng thì hơi khó, vì bạn phải chia nhỏ các chuỗi và nội dung. Nếu bạn đã sử dụng JQuery, thì plugin cookie có thể rất hay ...... Một điều khó chịu khi đọc cookie là một số trình duyệt xóa dấu chấm phẩy cuối cùng và một số thì không .... rất vui khi có người khác xử lý tất cả.
Peter Ajtai

8
Ồ, và plugin cookie JQuery chỉ có 40 dòng JS ... và bạn có thể chỉnh sửa nó theo mong muốn của mình, để bạn không cảm thấy như đang bước vào vùng nguy hiểm trừu tượng.
Peter Ajtai

3
Không liên quan đến jQuery như đã hỏi. Bình luận của Peter Ajtai cho thấy lý do casademora yêu cầu plugin jQuery thay vì Javascript.
CallMeLaNN

4
Đây là liên kết cập nhật cho những người kết thúc ở các liên kết chết hoặc trang web
plugins.jquery.com

18

Bạn sẽ cần plugin cookie, plugin này cung cấp một số chữ ký bổ sung cho chức năng cookie.

$.cookie('cookie_name', 'cookie_value')lưu trữ một cookie tạm thời (chỉ tồn tại trong phạm vi của phiên này, trong khi $.cookie('cookie_name', 'cookie_value', 'cookie_expiration")tạo một cookie sẽ tồn tại qua các phiên - xem http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/ để biết thêm thông tin trên plugin cookie JQuery.

Nếu bạn muốn đặt cookie được sử dụng cho toàn bộ trang web, bạn sẽ cần sử dụng JavaScript như sau:

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

1
Dường như liên kết này đã chết như các văn bản này
Đánh dấu Schultheiss

11

Một plugin jQuery mới để truy xuất và thao tác cookie với liên kết cho biểu mẫu, v.v.: http://plugins.jquery.com/project/cookies


3
Đối với bất kỳ ai đọc vào liên kết quá nhanh, chú ý 's' ở cuối cookie để làm điều này một câu trả lời khác nhau hơn so với từng người Alex Fort
Patrick

2
Đây là một liên kết tốt hơn tại thời điểm viết bài github.com/carhartl/jquery-cookie
Wiebe Tijsma

1
@Zidad không phải là plugin giống như được liên kết bởi Giver Of Cookies. Một ông liên kết hiện tại là code.google.com/p/cookies
JAAulde

@JAAulde Ah Tôi không nhận ra điều đó. Vì liên kết đã chết :) Cảm ơn!
Wiebe Tijsma,

7

Trả lời câu hỏi của bạn, đúng vậy. Người khác đã trả lời phần đó, nhưng có vẻ như bạn đang hỏi liệu đó có phải là cách tốt nhất để làm điều đó không.

Nó có thể sẽ phụ thuộc vào những gì bạn đang làm. Thông thường, bạn sẽ có một người dùng nhấp vào mặt hàng họ muốn mua (đặt hàng chẳng hạn). Sau đó, họ sẽ nhấn nút mua hoặc thanh toán. Sau đó, biểu mẫu sẽ gửi đến một trang và xử lý kết quả. Bạn có thể làm tất cả những điều đó với một cái bánh quy nhưng tôi sẽ thấy nó khó hơn.

Bạn có thể muốn xem xét đăng câu hỏi thứ hai của mình trong một chủ đề khác.



4

Bạn có thể duyệt qua tất cả các plugin jQuery được gắn thẻ "cookie" tại đây:

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

Rất nhiều lựa chọn ở đó.

Hãy xem cái tên là jQuery Storage, sử dụng localStorage của HTML5. Nếu localStorage không khả dụng, nó sẽ mặc định là cookie. Tuy nhiên, nó không cho phép bạn đặt thời hạn.


4

Có vẻ như plugin cookie jQuery không có sẵn để tải xuống. Tuy nhiên, bạn có thể tải xuống cùng một plugin cookie jQuery với một số cải tiến được mô tả trong jQuery & Cookies (get / set / delete & a plugin) .


Tôi cũng nhận ra, cookie Plugin phát triển dừng lại ở đó kể từ khi phiên bản đầu tiên và không chắc liệu nó tương thích với jQuery 1,4 *
CallMeLaNN

Plugin tương thích với jQuery 1.4, kể từ cú pháp mở rộng đã không thay đổi kể từ đó ...
jQuery Lover

2

Tôi đã quản lý để viết một tập lệnh cho phép người dùng chọn ngôn ngữ của họ, sử dụng tập lệnh cookie từ Klaus Hartl . Tôi đã mất vài giờ làm việc và tôi hy vọng mình có thể giúp đỡ những người khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.