ExtendableCookieChangeEvent

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is only available in Service Workers.

Giao diện ExtendableCookieChangeEvent của Cookie Store API là loại sự kiện được truyền vào sự kiện cookiechange được kích hoạt tại ServiceWorkerGlobalScope khi xảy ra bất kỳ thay đổi cookie nào khớp với danh sách đăng ký thay đổi cookie của service worker. Sự kiện thay đổi cookie bao gồm cookie và loại (hoặc "changed" hoặc "deleted").

Các thay đổi cookie gây ra việc gửi ExtendableCookieChangeEvent là:

  • Cookie mới được tạo và không bị xóa ngay lập tức, hoặc cookie bị thay thế. Trong trường hợp này type là "changed".
  • Cookie mới được tạo và bị xóa ngay lập tức. Trong trường hợp này type là "deleted"
  • Cookie bị xóa. Trong trường hợp này type là "deleted".
Event ExtendableEvent ExtendableCookieChangeEvent

Hàm khởi tạo

ExtendableCookieChangeEvent()

Tạo một ExtendableCookieChangeEvent mới.

Thuộc tính phiên bản

Giao diện này cũng kế thừa các thuộc tính từ ExtendableEvent.

ExtendableCookieChangeEvent.changed Read only

Trả về mảng chứa các cookie đã thay đổi.

ExtendableCookieChangeEvent.deleted Read only

Trả về mảng chứa các cookie đã bị xóa.

Phương thức phiên bản

Giao diện này cũng kế thừa các phương thức từ ExtendableEvent.

Ví dụ

Trong ví dụ dưới đây, chúng ta sử dụng CookieStoreManager.getSubscriptions() để lấy danh sách các đăng ký hiện có. (Trong service worker, cần có đăng ký để lắng nghe sự kiện.) Chúng ta hủy đăng ký khỏi các đăng ký hiện có bằng CookieStoreManager.unsubscribe(), sau đó đăng ký vào cookie có tên 'COOKIE_NAME' bằng CookieStoreManager.subscribe(). Nếu cookie đó thay đổi, trình nghe sự kiện sẽ ghi sự kiện vào console. Đây sẽ là đối tượng ExtendableCookieChangeEvent, với thuộc tính changed hoặc deleted chứa cookie đã được sửa đổi.

js
self.addEventListener("activate", (event) => {
  event.waitUntil(async () => {
    const subscriptions = await self.registration.cookies.getSubscriptions();

    await self.registration.cookies.unsubscribe(subscriptions);

    await self.registration.cookies.subscribe([
      {
        name: "COOKIE_NAME",
      },
    ]);
  });
});

self.addEventListener("cookiechange", (event) => {
  console.log(event);
});

Thông số kỹ thuật

Specification
Cookie Store API
# ExtendableCookieChangeEvent

Tương thích trình duyệt