CookieStoreManager: subscribe() 方法

可用性有限

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

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

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

CookieStoreManager 介面的 subscribe() 方法訂閱 ServiceWorkerRegistration 以接收 cookie 變更事件。

語法

js
subscribe(subscriptions)

引數

subscriptions

一個物件陣列,每個物件具有以下屬性

name

一個包含 cookie 名稱的字串。

url

一個字串,包含 cookie 作用域的 URL。此作用域可以比 service worker 註冊的作用域更窄。

返回值

當訂閱完成時,一個解析為 undefinedPromise

異常

TypeError

如果 subscriptions 中傳入的 URL 與 service worker 註冊的 scope 不匹配,則丟擲此錯誤。

示例

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

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

傳入 subscribe() 方法的 URL 可以比 service worker 註冊作用域更窄。在以下示例中,訂閱是針對 /path/one/ 的,因此它將接收第一個 cookie 的變更事件,但不會接收第二個 cookie 的變更事件。

js
registration.cookies.subscribe([{ name: "cookie1", url: "/path/one/" }]); // subscription
cookieStore.set({ name: "cookie1", value: "cookie-value", path: "/path/one/" }); // receives a change event
cookieStore.set({ name: "cookie1", value: "cookie-value", path: "/path/two/" }); // does not receive a change event

規範

規範
Cookie Store API
# dom-cookiestoremanager-subscribe

瀏覽器相容性