jQuery สามารถอ่าน / เขียนคุกกี้ไปยังเบราว์เซอร์ได้หรือไม่?


99

ตัวอย่างง่ายๆ: ฉันต้องการมีบางรายการบนเพจ (เช่น divs หรือแถวตาราง) และฉันต้องการให้ผู้ใช้คลิกเพื่อเลือก ดูเหมือนง่ายพอใน jQuery เพื่อบันทึกรายการที่ผู้ใช้คลิกโดยไม่มีการโพสต์กลับฝั่งเซิร์ฟเวอร์ฉันคิดว่าคุกกี้น่าจะเป็นวิธีง่ายๆในการทำสิ่งนี้

  1. ในกรณีนี้สมมติฐานว่าคุกกี้ใช้ได้หรือไม่?
  2. ถ้าถูกต้อง jQuery API มีวิธีอ่าน / เขียนข้อมูลคุกกี้ที่ดีกว่า JavaScript API เริ่มต้นหรือไม่

คำตอบ:


52

JavaScript "API" เริ่มต้นสำหรับการตั้งค่าคุกกี้นั้นง่ายพอ ๆ กับ:

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

ใช้ปลั๊กอินคุกกี้ jQuery เช่น:

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

14
ใช่การเขียนคุกกี้เป็นเรื่องง่าย แต่การอ่านมันเป็นเรื่องยากเพราะคุณต้องแยกสตริงและสิ่งของต่างๆ หากคุณใช้ JQuery อยู่แล้วปลั๊กอินคุกกี้ก็น่าจะดี ...... สิ่งที่น่ารำคาญเกี่ยวกับการอ่านคุกกี้คือเบราว์เซอร์บางตัวลบอัฒภาคสุดท้ายและบางตัวก็ไม่ .... ดีที่มีคนอื่นจัดการ ทุกสิ่งที่.
Peter Ajtai

8
โอ้และปลั๊กอินคุกกี้ JQuery เป็น JS เพียง 40 บรรทัดเท่านั้น ... และคุณสามารถแก้ไขได้ตามความต้องการเพื่อที่คุณจะได้ไม่รู้สึกว่ากำลังเข้าสู่เขตอันตรายที่เป็นนามธรรม
Peter Ajtai

3
ไม่เกี่ยวกับ jQuery ตามที่ถาม ความคิดเห็นของ Peter Ajtai แสดงให้เห็นว่าเหตุใด casademora จึงขอปลั๊กอิน jQuery แทน Javascript
CallMeLaNN

4
นี่คือลิงค์ล่าสุดสำหรับคนที่ลงเอยด้วยลิงก์ที่ตายแล้วหรือเว็บไซต์ plugins ที่ทำงานผิดพลาด jquery.com: github.com/carhartl/jquery-cookie
Wiebe Tijsma

18

คุณจะต้องมีปลั๊กอินคุกกี้ซึ่งมีลายเซ็นเพิ่มเติมหลายอย่างสำหรับฟังก์ชันคุกกี้

$.cookie('cookie_name', 'cookie_value')เก็บคุกกี้ชั่วคราว (มีอยู่ในขอบเขตของเซสชันนี้เท่านั้นในขณะที่$.cookie('cookie_name', 'cookie_value', 'cookie_expiration")สร้างคุกกี้ที่จะอยู่ตลอดเซสชัน - ดูที่http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/สำหรับข้อมูลเพิ่มเติม บนปลั๊กอินคุกกี้ JQuery

หากคุณต้องการตั้งค่าคุกกี้ที่ใช้กับทั้งไซต์คุณจะต้องใช้ JavaScript ดังนี้:

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

1
ดูเหมือนว่าลิงก์นี้จะใช้งานไม่ได้ในขณะที่เขียนนี้
Mark Schultheiss

11

ปลั๊กอิน jQuery ใหม่สำหรับการดึงและการจัดการคุกกี้พร้อมการเชื่อมโยงสำหรับฟอร์ม ฯลฯ : http://plugins.jquery.com/project/cookies


3
สำหรับใครก็ตามที่อ่านลิงค์เร็วเกินไปให้สังเกต 's' ที่ท้ายคุกกี้เพื่อให้คำตอบนี้แตกต่างจากที่ Alex Fort
Patrick

2
นี่คือลิงค์ที่ดีกว่าในขณะที่เขียนgithub.com/carhartl/jquery-cookie
Wiebe Tijsma

1
@Zidad ที่ไม่ใช่ปลั๊กอินเดียวกับที่ลิงก์โดย Giver Of Cookies ตอนนี้เขาเชื่อมโยงอยู่ที่code.google.com/p/cookies
JAAulde

@JAAulde Ah ฉันไม่รู้เรื่องนั้น เพราะลิงค์ตาย :) ขอบคุณ!
Wiebe Tijsma

7

เพื่อตอบคำถามของคุณใช่ อีกฝ่ายตอบในส่วนนั้น แต่ดูเหมือนว่าคุณกำลังถามว่านั่นเป็นวิธีที่ดีที่สุดหรือไม่

มันอาจจะขึ้นอยู่กับสิ่งที่คุณกำลังทำ โดยปกติคุณจะให้ผู้ใช้คลิกรายการที่ต้องการซื้อ (เช่นสั่งซื้อ) จากนั้นพวกเขาจะกดปุ่มซื้อหรือชำระเงิน จากนั้นแบบฟอร์มจะส่งไปยังเพจและประมวลผลผลลัพธ์ คุณสามารถทำทั้งหมดนี้ด้วยคุกกี้ แต่ฉันจะพบว่ามันยากกว่านี้

คุณอาจต้องการพิจารณาโพสต์คำถามที่สองของคุณในหัวข้ออื่น



4

คุณสามารถเรียกดูปลั๊กอิน jQuery ทั้งหมดที่ติดแท็ก "คุกกี้" ได้ที่นี่:

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

มีตัวเลือกมากมาย

ลองดูสิ่งที่เรียกว่า jQuery Storage ซึ่งใช้ประโยชน์จาก localStorage ของ HTML5 หากไม่มี localStorage จะใช้คุกกี้เป็นค่าเริ่มต้น อย่างไรก็ตามไม่อนุญาตให้คุณกำหนดวันหมดอายุ


4

ดูเหมือนว่าปลั๊กอินคุกกี้ jQuery จะไม่สามารถดาวน์โหลดได้ อย่างไรก็ตามคุณสามารถดาวน์โหลดปลั๊กอิน jQuery คุกกี้เดียวกันกับการปรับปรุงบางอย่างที่อธิบายไว้ในjQuery และคุกกี้ (รับ / ชุด / ลบและปลั๊กอิน)


ฉันรู้ด้วยว่าการพัฒนาปลั๊กอินคุกกี้หยุดลงตั้งแต่รุ่นแรกและไม่แน่ใจว่าเข้ากันได้กับ jQuery 1.4 * หรือไม่
CallMeLaNN

ปลั๊กอินเข้ากันได้กับ jQuery 1.4 เนื่องจากไวยากรณ์ส่วนขยายไม่ได้เปลี่ยนแปลงตั้งแต่นั้นมา ...
jQuery Lover

2

ฉันมีการจัดการที่จะเขียนสคริปต์ช่วยให้ผู้ใช้สามารถเลือก / ภาษาของเขาและเธอใช้สคริปต์คุกกี้ออกจากเคลาส์ Hartl ฉันใช้เวลาทำงานสองสามชั่วโมงและฉันหวังว่าจะสามารถช่วยคนอื่นได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.