Bisakah jQuery membaca / menulis cookie ke browser?

99

Contoh sederhana: Saya ingin memiliki beberapa item di halaman (seperti baris div atau tabel), dan saya ingin membiarkan pengguna mengkliknya untuk memilihnya. Itu sepertinya cukup mudah di jQuery. Untuk menyimpan item mana yang diklik pengguna tanpa punggung sisi server, saya berpikir cookie akan menjadi cara sederhana untuk menyelesaikannya.

  1. Apakah asumsi bahwa cookie OK dalam kasus ini, benar?
  2. Jika benar, apakah jQuery API memiliki beberapa cara untuk membaca / menulis informasi cookie yang lebih bagus daripada JavaScript API default?
casademora.dll
sumber

Jawaban:

52

"API" JavaScript default untuk menyetel cookie semudah:

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

Gunakan plugin cookie jQuery seperti:

$.cookie('mycookie', 'valueOfCookie')
adam
sumber
14
Ya, menulis cookie itu mudah, tetapi membacanya agak merepotkan, karena Anda harus membagi string dan semacamnya. Jika Anda sudah menggunakan JQuery, maka plugin cookie bisa jadi bagus ...... Hal yang mengganggu tentang membaca cookie adalah beberapa browser menghapus titik koma terakhir dan beberapa tidak .... senang memiliki orang lain yang menangani semua itu.
Peter Ajtai
8
Oh, dan plugin cookie JQuery hanya 40 baris JS ... dan Anda dapat mengeditnya sesuai keinginan Anda, sehingga Anda tidak merasa seperti memasuki zona bahaya abstraksi.
Peter Ajtai
3
Tidak terkait dengan jQuery seperti yang diminta. Komentar Peter Ajtai menunjukkan mengapa casademora meminta plugin jQuery sebagai ganti Javascript.
CallMeLaNN
4
Berikut tautan terkini untuk orang-orang yang berakhir dengan tautan mati atau situs plugins.jquery.com rusak: github.com/carhartl/jquery-cookie
Wiebe Tijsma
18

Anda membutuhkan plugin cookie, yang memberikan beberapa tanda tangan tambahan ke fungsi cookie.

$.cookie('cookie_name', 'cookie_value')menyimpan cookie sementara (hanya ada dalam cakupan sesi ini, sementara $.cookie('cookie_name', 'cookie_value', 'cookie_expiration")membuat cookie yang akan bertahan di seluruh sesi - lihat http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/ untuk informasi lebih lanjut di plugin cookie JQuery.

Jika Anda ingin menyetel cookie yang digunakan untuk seluruh situs, Anda perlu menggunakan JavaScript seperti ini:

document.cookie = "name=value; expires=date; domain=domain; path=path; secure"
Steve Moyer
sumber
1
Tampaknya tautan ini sudah mati pada tulisan ini
Mark Schultheiss
11

Sebuah plugin jQuery baru untuk pengambilan dan manipulasi cookie dengan pengikatan untuk formulir, dll: http://plugins.jquery.com/project/cookies


sumber
3
Bagi siapa saja yang membaca tautan terlalu cepat, perhatikan 's' di akhir cookie untuk membuat ini menjadi jawaban yang berbeda dari yang oleh Alex Fort
Patrick
2
Berikut tautan yang lebih baik pada saat penulisan github.com/carhartl/jquery-cookie
Wiebe Tijsma
1
@Zidad itu bukan plugin yang sama seperti yang ditautkan oleh Pemberi Cookie. Yang dia hubungkan sekarang di
tautkan
@JAAulde Ah Saya tidak menyadarinya. Karena linknya sudah mati :) Terima kasih!
Wiebe Tijsma
7

Untuk menjawab pertanyaan Anda, ya. Orang lain telah menjawab bagian itu, tetapi sepertinya Anda juga bertanya apakah itu cara terbaik untuk melakukannya.

Itu mungkin akan tergantung pada apa yang Anda lakukan. Biasanya Anda akan meminta pengguna mengklik item apa yang ingin mereka beli (memesan misalnya). Kemudian mereka akan menekan tombol beli atau checkout. Kemudian formulir akan dikirim ke halaman dan memproses hasilnya. Anda dapat melakukan semua itu dengan cookie, tetapi saya akan merasa lebih sulit.

Anda mungkin ingin mempertimbangkan untuk memposting pertanyaan kedua Anda di topik lain.

SeanDowney
sumber
4

Anda dapat menelusuri semua plugin jQuery yang diberi tag "cookie" di sini:

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

Banyak pilihan di sana.

Lihat yang disebut jQuery Storage, yang memanfaatkan localStorage HTML5. Jika localStorage tidak tersedia, defaultnya adalah cookie. Namun, itu tidak memungkinkan Anda untuk mengatur kedaluwarsa.

Marshall Æon
sumber
4

Tampaknya plugin cookie jQuery tidak tersedia untuk diunduh. Namun, Anda dapat mengunduh plugin cookie jQuery yang sama dengan beberapa perbaikan yang dijelaskan di jQuery & Cookies (dapatkan / setel / hapus & plugin) .

jQuery Lover
sumber
Saya juga menyadari, pengembangan plugin cookie berhenti di sana sejak rilis pertama dan tidak yakin apakah itu kompatibel dengan jQuery 1.4 *
CallMeLaNN
Plugin ini kompatibel dengan jQuery 1.4, karena sintaks ekstensi tidak berubah sejak saat itu ...
jQuery Lover
2

Saya telah berhasil menulis skrip yang memungkinkan pengguna untuk memilih bahasanya, menggunakan skrip cookie dari Klaus Hartl . Saya butuh beberapa jam kerja, dan saya harap saya bisa membantu orang lain.

Porta Shqipe
sumber