ExtendableCookieChangeEvent
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist nur in Service Workers verfügbar.
Die ExtendableCookieChangeEvent
-Schnittstelle der Cookie Store API ist der Ereignistyp, der an das cookiechange
-Ereignis übergeben wird, das im ServiceWorkerGlobalScope
ausgelöst wird, wenn Änderungen an Cookies auftreten, die der Cookie-Änderungs-Abonnementliste des Service-Workers entsprechen. Ein Cookie-Änderungsereignis besteht aus einem Cookie und einem Typ (entweder "changed" oder "deleted").
Cookie-Änderungen, die dazu führen, dass das ExtendableCookieChangeEvent
ausgelöst wird, sind:
- Ein Cookie wird neu erstellt und nicht sofort entfernt oder wird ersetzt.
In diesem Fall ist
type
"changed". - Ein Cookie wird neu erstellt und sofort entfernt.
In diesem Fall ist
type
"deleted". - Ein Cookie wird entfernt. In diesem Fall ist
type
"deleted".
Konstruktor
-
Erstellt ein neues
ExtendableCookieChangeEvent
.
Instanz-Eigenschaften
Diese Schnittstelle erbt auch Eigenschaften von ExtendableEvent
.
-
Gibt ein Array zurück, das die geänderten Cookies enthält.
-
Gibt ein Array zurück, das die gelöschten Cookies enthält.
Instanz-Methoden
Diese Schnittstelle erbt auch Methoden von ExtendableEvent
.
Beispiele
Im folgenden Beispiel verwenden wir CookieStoreManager.getSubscriptions()
, um eine Liste der bestehenden Abonnements zu erhalten. (In Service-Workern ist ein Abonnement erforderlich, um Ereignisse empfangen zu können.) Wir kündigen bestehende Abonnements mit CookieStoreManager.unsubscribe()
, und abonnieren dann das Cookie mit dem Namen 'COOKIE_NAME' mit CookieStoreManager.subscribe()
. Wenn dieses Cookie geändert wird, protokolliert der Ereignis-Listener das Ereignis in der Konsole. Dies wird ein ExtendableCookieChangeEvent
-Objekt sein, mit der Eigenschaft changed
oder deleted
, die das geänderte Cookie enthält.
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);
});
Spezifikationen
Specification |
---|
Cookie Store API # ExtendableCookieChangeEvent |