CookieStoreManager

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Service Workers 中可用。

CookieStoreManager 介面是 Cookie Store API 的一部分,它允許 Service Worker 訂閱 cookie 更改事件。在特定的 Service Worker 註冊物件上呼叫 subscribe() 方法即可接收更改事件。

一個 CookieStoreManager 物件關聯著一個 ServiceWorkerRegistration 物件。每個 Service Worker 註冊物件都有一個 cookie 更改訂閱列表,該列表包含一個名稱和一個 URL。此介面中的方法允許 Service Worker 向此列表新增和刪除訂閱,以及獲取所有訂閱的列表。

要獲取 CookieStoreManager 物件,請呼叫 ServiceWorkerRegistration.cookies

例項方法

CookieStoreManager.getSubscriptions()

返回一個 Promise,該 Promise 解析後會得到此 Service Worker 註冊的 cookie 更改訂閱列表。

CookieStoreManager.subscribe()

訂閱 cookie 的更改。它返回一個 Promise,該 Promise 在訂閱成功時解析。

CookieStoreManager.unsubscribe()

取消註冊的 Service Worker 對 cookie 更改的訂閱。它返回一個 Promise,該 Promise 在操作成功時解析。

示例

在此示例中,由 registration 代表的 ServiceWorkerRegistration 物件正在訂閱作用域為 "/path1" 的名為 "cookie1" 的 cookie 的更改事件。

js
const subscriptions = [{ name: "cookie1", url: `/path1` }];
await registration.cookies.subscribe(subscriptions);

如果 ServiceWorkerRegistration 物件已經訂閱了任何 cookie,那麼 getSubscriptions() 將返回一個 cookie 列表,這些 cookie 以與原始訂閱相同的格式表示。

js
const subscriptions = await self.registration.cookies.getSubscriptions();

規範

規範
Cookie Store API
# cookiestoremanager

瀏覽器相容性