คำอธิบาย
ใช้ chrome.cookies API เพื่อค้นหาและแก้ไขคุกกี้ รวมถึงรับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลง
สิทธิ์
cookiesไฟล์ Manifest
หากต้องการใช้คุกกี้ API คุณต้องประกาศสิทธิ์ "cookies" ใน ไฟล์ Manifest พร้อมกับสิทธิ์ของโฮสต์สำหรับโฮสต์ใดก็ตามที่คุณต้องการ เข้าถึงคุกกี้ เช่น
{
  "name": "My extension",
  ...
  "host_permissions": [
    "*://*.google.com/"
  ],
  "permissions": [
    "cookies"
  ],
  ...
}
การแบ่งพาร์ติชัน
คุกกี้ที่แบ่งพาร์ติชันช่วยให้เว็บไซต์ทำเครื่องหมายว่าควรใช้คีย์คุกกี้บางรายการกับต้นทางของเฟรมระดับบนสุด ซึ่งหมายความว่าหากฝังเว็บไซต์ ก โดยใช้ iframe ในเว็บไซต์ ข และเว็บไซต์ ค คุกกี้ที่แบ่งพาร์ติชันจะมีค่าต่างกันในแต่ละเว็บไซต์
chrome.cookies ไม่รองรับการแบ่งพาร์ติชัน ซึ่งหมายความว่าเมธอดทั้งหมด
อ่านและเขียนคุกกี้จากพาร์ติชันทั้งหมด เมธอด cookies.set() จะจัดเก็บคุกกี้ใน
พาร์ติชันเริ่มต้น
ดูรายละเอียดเกี่ยวกับผลกระทบทั่วไปของการแบ่งพาร์ติชันสำหรับส่วนขยายได้ที่พื้นที่เก็บข้อมูลและคุกกี้
ตัวอย่าง
คุณดูตัวอย่างการใช้คุกกี้ API แบบง่ายได้ในไดเรกทอรี examples/api/cookies ดูตัวอย่างอื่นๆ และความช่วยเหลือในการดู ซอร์สโค้ดได้ที่ตัวอย่าง
ประเภท
Cookie
แสดงข้อมูลเกี่ยวกับคุกกี้ HTTP
พร็อพเพอร์ตี้
- 
    โดเมนสตริง โดเมนของคุกกี้ (เช่น "www.google.com", "example.com") 
- 
    expirationDateหมายเลข ไม่บังคับ วันที่หมดอายุของคุกกี้เป็นจำนวนวินาทีนับตั้งแต่ Epoch ของ UNIX ไม่ได้ระบุสำหรับคุกกี้เซสชัน 
- 
    hostOnlyบูลีน เป็นจริงหากคุกกี้เป็นคุกกี้เฉพาะโฮสต์ (เช่น โฮสต์ของคำขอต้องตรงกับโดเมนของคุกกี้ทุกประการ) 
- 
    httpOnlyบูลีน จริงหากมีการทำเครื่องหมายคุกกี้เป็น HttpOnly (เช่น สคริปต์ฝั่งไคลเอ็นต์เข้าถึงคุกกี้ไม่ได้) 
- 
    ชื่อสตริง ชื่อของคุกกี้ 
- 
    partitionKeyCookiePartitionKey ไม่บังคับ Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับการอ่านหรือแก้ไขคุกกี้ที่มีแอตทริบิวต์ Partitioned 
- 
    เส้นทางสตริง เส้นทางของคุกกี้ 
- 
    sameSiteChrome 51 ขึ้นไปสถานะ SameSite ของคุกกี้ (เช่น มีการส่งคุกกี้พร้อมคำขอแบบข้ามเว็บไซต์หรือไม่) 
- 
    ปลอดภัยบูลีน เป็นจริงหากมีการทำเครื่องหมายคุกกี้เป็น Secure (เช่น ขอบเขตจำกัดเฉพาะช่องทางที่ปลอดภัย ซึ่งโดยทั่วไปคือ HTTPS) 
- 
    เซสชันบูลีน เป็นจริงหากคุกกี้เป็นคุกกี้เซสชัน ซึ่งตรงข้ามกับคุกกี้ถาวรที่มีวันที่หมดอายุ 
- 
    storeIdสตริง รหัสของที่เก็บคุกกี้ที่มีคุกกี้นี้ ตามที่ระบุไว้ใน getAllCookieStores() 
- 
    valueสตริง ค่าของคุกกี้ 
CookieDetails
รายละเอียดเพื่อระบุคุกกี้
พร็อพเพอร์ตี้
- 
    ชื่อสตริง ชื่อของคุกกี้ที่จะเข้าถึง 
- 
    partitionKeyCookiePartitionKey ไม่บังคับ Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับการอ่านหรือแก้ไขคุกกี้ที่มีแอตทริบิวต์ Partitioned 
- 
    storeIdสตริง ไม่บังคับ รหัสของที่เก็บคุกกี้ที่จะใช้ค้นหาคุกกี้ โดยค่าเริ่มต้น ระบบจะใช้ที่เก็บคุกกี้ของบริบทการดำเนินการปัจจุบัน 
- 
    URLสตริง URL ที่เชื่อมโยงกับคุกกี้ที่จะเข้าถึง อาร์กิวเมนต์นี้อาจเป็น URL แบบเต็ม ในกรณีนี้ระบบจะไม่สนใจข้อมูลใดๆ ที่อยู่หลังเส้นทาง URL (เช่น สตริงการค้นหา) หากไม่ได้ระบุสิทธิ์ของโฮสต์สำหรับ URL นี้ในไฟล์ Manifest การเรียก API จะไม่สำเร็จ 
CookiePartitionKey
แสดงคีย์พาร์ติชันของคุกกี้ที่แบ่งพาร์ติชัน
พร็อพเพอร์ตี้
- 
    hasCrossSiteAncestorบูลีน ไม่บังคับ Chrome 130 ขึ้นไประบุว่ามีการตั้งค่าคุกกี้ในบริบทข้ามเว็บไซต์หรือไม่ ซึ่งจะป้องกันไม่ให้เว็บไซต์ระดับบนสุดที่ฝังอยู่ในบริบทข้ามเว็บไซต์เข้าถึงคุกกี้ที่เว็บไซต์ระดับบนสุดตั้งค่าไว้ในบริบทของเว็บไซต์เดียวกัน 
- 
    topLevelSiteสตริง ไม่บังคับ เว็บไซต์ระดับบนสุดที่คุกกี้ที่แบ่งพาร์ติชันพร้อมใช้งาน 
CookieStore
แสดงที่เก็บคุกกี้ในเบราว์เซอร์ เช่น หน้าต่างโหมดไม่ระบุตัวตนจะใช้ที่เก็บคุกกี้แยกต่างหากจากหน้าต่างที่ไม่ใช่โหมดไม่ระบุตัวตน
พร็อพเพอร์ตี้
- 
    idสตริง ตัวระบุที่ไม่ซ้ำกันสำหรับที่เก็บคุกกี้ 
- 
    tabIdsnumber[] ตัวระบุของแท็บเบราว์เซอร์ทั้งหมดที่ใช้ที่เก็บคุกกี้นี้ร่วมกัน 
FrameDetails
รายละเอียดในการระบุเฟรม
พร็อพเพอร์ตี้
- 
    documentIdสตริง ไม่บังคับ ตัวระบุที่ไม่ซ้ำกันสำหรับเอกสาร หากมีการระบุ frameId และ/หรือ tabId ระบบจะตรวจสอบว่าตรงกับเอกสารที่พบตามรหัสเอกสารที่ระบุหรือไม่ 
- 
    frameIdหมายเลข ไม่บังคับ ตัวระบุที่ไม่ซ้ำกันสำหรับเฟรมภายในแท็บ 
- 
    tabIdหมายเลข ไม่บังคับ ตัวระบุที่ไม่ซ้ำกันสำหรับแท็บที่มีเฟรม 
OnChangedCause
เหตุผลเบื้องหลังการเปลี่ยนแปลงคุกกี้ หากมีการแทรกหรือนำคุกกี้ออกผ่านการเรียก "chrome.cookies.remove" อย่างชัดเจน "สาเหตุ" จะเป็น "explicit" หากระบบนำคุกกี้ออกโดยอัตโนมัติเนื่องจากหมดอายุ "สาเหตุ" จะเป็น "หมดอายุ" หากมีการนำคุกกี้ออกเนื่องจากมีการเขียนทับด้วยวันที่หมดอายุที่หมดอายุไปแล้ว ระบบจะตั้งค่า "สาเหตุ" เป็น "expired_overwrite" หากระบบนำคุกกี้ออกโดยอัตโนมัติเนื่องจากการเก็บขยะ "สาเหตุ" จะเป็น "ถูกนำออก" หากระบบนำคุกกี้ออกโดยอัตโนมัติเนื่องจากการเรียก "set" ที่เขียนทับคุกกี้ "สาเหตุ" จะเป็น "เขียนทับ" วางแผนการตอบกลับตามความเหมาะสม
ค่าแจกแจง
"ถูกขับไล่" 
 
"หมดอายุ" 
 
"โจ่งแจ้ง" 
 
"expired_overwrite" 
 
"เขียนทับ" 
 
SameSiteStatus
สถานะ "SameSite" ของคุกกี้ (https://tools.ietf.org/html/draft-west-first-party-cookies) "no_restriction" สอดคล้องกับคุกกี้ที่ตั้งค่าเป็น "SameSite=None", "lax" สอดคล้องกับ "SameSite=Lax" และ "strict" สอดคล้องกับ "SameSite=Strict" "ไม่ได้ระบุ" สอดคล้องกับคุกกี้ที่ตั้งค่าโดยไม่มีแอตทริบิวต์ SameSite
ค่าแจกแจง
"no_restriction" 
 
"lax" 
 
"เข้มงวด" 
 
"unspecified" 
 
เมธอด
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
): Promise<Cookie | undefined>
เรียกข้อมูลเกี่ยวกับคุกกี้รายการเดียว หากมีคุกกี้ที่มีชื่อเดียวกันมากกว่า 1 รายการสำหรับ URL ที่ระบุ ระบบจะแสดงผลคุกกี้ที่มีเส้นทางยาวที่สุด สำหรับคุกกี้ที่มีความยาวเส้นทางเท่ากัน ระบบจะแสดงคุกกี้ที่สร้างขึ้นเร็วที่สุด
พารามิเตอร์
การคืนสินค้า
- 
            Promise<Cookie | undefined> Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ 
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
): Promise<Cookie[]>
ซึ่งจะเรียกข้อมูลคุกกี้ทั้งหมดจากที่เก็บคุกกี้รายการเดียวที่ตรงกับข้อมูลที่ระบุ ระบบจะจัดเรียงคุกกี้ที่แสดงผล โดยคุกกี้ที่มีเส้นทางยาวที่สุดจะอยู่ก่อน หากคุกกี้หลายรายการมีความยาวเส้นทางเท่ากัน คุกกี้ที่มีเวลาสร้างเร็วที่สุดจะแสดงก่อน วิธีนี้จะดึงคุกกี้สำหรับโดเมนที่ส่วนขยายมีสิทธิ์เข้าถึงโฮสต์เท่านั้น
พารามิเตอร์
- 
    รายละเอียดออบเจ็กต์ ข้อมูลในการกรองคุกกี้ที่ดึงข้อมูล - 
    โดเมนสตริง ไม่บังคับ จำกัดคุกกี้ที่เรียกข้อมูลให้เฉพาะคุกกี้ที่มีโดเมนตรงกันหรือเป็นโดเมนย่อยของโดเมนนี้ 
- 
    ชื่อสตริง ไม่บังคับ กรองคุกกี้ตามชื่อ 
- 
    partitionKeyCookiePartitionKey ไม่บังคับ Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับการอ่านหรือแก้ไขคุกกี้ที่มีแอตทริบิวต์ Partitioned 
- 
    เส้นทางสตริง ไม่บังคับ จำกัดคุกกี้ที่เรียกข้อมูลให้เป็นคุกกี้ที่มีเส้นทางตรงกับสตริงนี้ 
- 
    ปลอดภัยบูลีน ไม่บังคับ กรองคุกกี้ตามพร็อพเพอร์ตี้ Secure 
- 
    เซสชันบูลีน ไม่บังคับ กรองคุกกี้เซสชันเทียบกับคุกกี้ถาวร 
- 
    storeIdสตริง ไม่บังคับ ที่เก็บคุกกี้ที่จะดึงคุกกี้จาก หากละไว้ ระบบจะใช้ที่เก็บคุกกี้ของบริบทการดำเนินการปัจจุบัน 
- 
    URLสตริง ไม่บังคับ จำกัดคุกกี้ที่เรียกข้อมูลให้เป็นคุกกี้ที่ตรงกับ URL ที่ระบุ 
 
- 
    
- 
    callbackฟังก์ชัน ไม่บังคับ พารามิเตอร์ callbackมีลักษณะดังนี้(cookies: Cookie[]) => void - 
    คุกกี้คุกกี้[] คุกกี้ที่มีอยู่ทั้งหมดซึ่งยังไม่หมดอายุและตรงกับข้อมูลคุกกี้ที่ระบุ 
 
- 
    
การคืนสินค้า
- 
            Promise<Cookie[]> Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ 
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
): Promise<CookieStore[]>
แสดงรายการที่เก็บคุกกี้ทั้งหมดที่มีอยู่
พารามิเตอร์
- 
    callbackฟังก์ชัน ไม่บังคับ พารามิเตอร์ callbackมีลักษณะดังนี้(cookieStores: CookieStore[]) => void - 
    cookieStoresที่เก็บคุกกี้ที่มีอยู่ทั้งหมด 
 
- 
    
การคืนสินค้า
- 
            Promise<CookieStore[]> Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ 
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
callback?: function,
): Promise<object>
คีย์พาร์ติชันสำหรับเฟรมที่ระบุ
พารามิเตอร์
- 
    รายละเอียด
- 
    callbackฟังก์ชัน ไม่บังคับ พารามิเตอร์ callbackมีลักษณะดังนี้(details: object) => void - 
    รายละเอียดออบเจ็กต์ มีรายละเอียดเกี่ยวกับคีย์พาร์ติชันที่ดึงข้อมูลมา - 
    partitionKeyคีย์พาร์ติชันสำหรับการอ่านหรือแก้ไขคุกกี้ที่มีแอตทริบิวต์ Partitioned 
 
- 
    
 
- 
    
การคืนสินค้า
- 
            Promise<object> ระบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ 
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
): Promise<object | undefined>
ลบคุกกี้ตามชื่อ
พารามิเตอร์
- 
    รายละเอียด
- 
    callbackฟังก์ชัน ไม่บังคับ พารามิเตอร์ callbackมีลักษณะดังนี้(details?: object) => void - 
    รายละเอียดobject ไม่บังคับ มีรายละเอียดเกี่ยวกับคุกกี้ที่ถูกนำออก หากการนำออกไม่สำเร็จไม่ว่าด้วยเหตุผลใดก็ตาม ค่านี้จะเป็น "null" และจะมีการตั้งค่า runtime.lastError- 
    ชื่อสตริง ชื่อของคุกกี้ที่ถูกนำออก 
- 
    partitionKeyCookiePartitionKey ไม่บังคับ Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับการอ่านหรือแก้ไขคุกกี้ที่มีแอตทริบิวต์ Partitioned 
- 
    storeIdสตริง รหัสของที่เก็บคุกกี้ที่นำคุกกี้ออก 
- 
    URLสตริง URL ที่เชื่อมโยงกับคุกกี้ที่ถูกนำออก 
 
- 
    
 
- 
    
การคืนสินค้า
- 
            Promise<object | undefined> Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ 
set()
chrome.cookies.set(
details: object,
callback?: function,
): Promise<Cookie | undefined>
ตั้งค่าคุกกี้โดยใช้ข้อมูลคุกกี้ที่ระบุ และอาจเขียนทับคุกกี้ที่เทียบเท่าหากมี
พารามิเตอร์
- 
    รายละเอียดออบเจ็กต์ รายละเอียดเกี่ยวกับคุกกี้ที่กำลังตั้งค่า - 
    โดเมนสตริง ไม่บังคับ โดเมนของคุกกี้ หากไม่ระบุ คุกกี้จะกลายเป็นคุกกี้เฉพาะโฮสต์ 
- 
    expirationDateหมายเลข ไม่บังคับ วันที่หมดอายุของคุกกี้เป็นจำนวนวินาทีนับตั้งแต่ Epoch ของ UNIX หากไม่ระบุ คุกกี้จะกลายเป็นคุกกี้เซสชัน 
- 
    httpOnlyบูลีน ไม่บังคับ ควรทำเครื่องหมายคุกกี้เป็น HttpOnly หรือไม่ ค่าเริ่มต้นคือ false 
- 
    ชื่อสตริง ไม่บังคับ ชื่อของคุกกี้ เว้นว่างไว้โดยค่าเริ่มต้นหากละไว้ 
- 
    partitionKeyCookiePartitionKey ไม่บังคับ Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับการอ่านหรือแก้ไขคุกกี้ที่มีแอตทริบิวต์ Partitioned 
- 
    เส้นทางสตริง ไม่บังคับ เส้นทางของคุกกี้ ค่าเริ่มต้นจะเป็นส่วนเส้นทางของพารามิเตอร์ URL 
- 
    sameSiteSameSiteStatus ไม่บังคับ Chrome 51 ขึ้นไปสถานะ SameSite ของคุกกี้ ค่าเริ่มต้นคือ "unspecified" กล่าวคือ หากละเว้น ระบบจะตั้งค่าคุกกี้โดยไม่ระบุแอตทริบิวต์ SameSite 
- 
    ปลอดภัยบูลีน ไม่บังคับ ควรทำเครื่องหมายคุกกี้เป็น Secure หรือไม่ ค่าเริ่มต้นคือ false 
- 
    storeIdสตริง ไม่บังคับ รหัสของที่เก็บคุกกี้ที่จะตั้งค่าคุกกี้ โดยค่าเริ่มต้น ระบบจะตั้งค่าคุกกี้ในที่เก็บคุกกี้ของบริบทการดำเนินการปัจจุบัน 
- 
    URLสตริง URI คำขอที่จะเชื่อมโยงกับการตั้งค่าคุกกี้ ค่านี้อาจส่งผลต่อค่าโดเมนและเส้นทางเริ่มต้นของคุกกี้ที่สร้างขึ้น หากไม่ได้ระบุสิทธิ์ของโฮสต์สำหรับ URL นี้ในไฟล์ Manifest การเรียก API จะไม่สำเร็จ 
- 
    valueสตริง ไม่บังคับ ค่าของคุกกี้ เว้นว่างไว้โดยค่าเริ่มต้นหากละไว้ 
 
- 
    
- 
    callbackฟังก์ชัน ไม่บังคับ พารามิเตอร์ callbackมีลักษณะดังนี้(cookie?: Cookie) => void - 
    คุกกี้คุกกี้ ไม่บังคับ มีรายละเอียดเกี่ยวกับคุกกี้ที่ตั้งค่าไว้ หากการตั้งค่าล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม ค่านี้จะเป็น "null" และจะมีการตั้งค่า runtime.lastError
 
- 
    
การคืนสินค้า
- 
            Promise<Cookie | undefined> Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ 
กิจกรรม
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
ทริกเกอร์เมื่อมีการตั้งค่าหรือนำคุกกี้ออก ในกรณีพิเศษ โปรดทราบว่าการอัปเดตพร็อพเพอร์ตี้ของคุกกี้จะดำเนินการเป็น 2 ขั้นตอน โดยขั้นแรก ระบบจะนำคุกกี้ที่จะอัปเดตออกทั้งหมด ซึ่งจะสร้างการแจ้งเตือนที่มี "สาเหตุ" เป็น "เขียนทับ" หลังจากนั้น ระบบจะเขียนคุกกี้ใหม่โดยใช้ค่าที่อัปเดตแล้ว ซึ่งจะสร้างการแจ้งเตือนที่ 2 โดยมี "สาเหตุ" เป็น "โจ่งแจ้ง"
พารามิเตอร์
- 
    callbackฟังก์ชัน พารามิเตอร์ callbackมีลักษณะดังนี้(changeInfo: object) => void - 
    changeInfoออบเจ็กต์ - 
    สาเหตุเหตุผลเบื้องหลังการเปลี่ยนแปลงคุกกี้ 
- 
    คุกกี้ข้อมูลเกี่ยวกับคุกกี้ที่ตั้งค่าหรือนำออก 
- 
    ลบแล้วบูลีน เป็นจริงหากมีการนำคุกกี้ออก 
 
- 
    
 
-