ExtendableCookieChangeEvent
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist nur verfügbar in Service Workers.
Das ExtendableCookieChangeEvent
Interface 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 mit der Cookie-Änderungsabo-Liste des Service Workers übereinstimmen. Ein Cookie-Änderungsereignis besteht aus einem Cookie und einem Typ (entweder "changed" oder "deleted").
Cookie-Änderungen, die das ExtendableCookieChangeEvent
auslösen, sind:
- Ein Cookie wird neu erstellt und nicht sofort entfernt. 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".
Hinweis: Ein Cookie, das aufgrund der Einfügung eines anderen Cookies mit demselben Namen, derselben Domain und demselben Pfad ersetzt wird, wird ignoriert und löst kein Änderungsereignis aus.
Konstruktor
-
Erstellt ein neues
ExtendableCookieChangeEvent
.
Instanz-Eigenschaften
Dieses Interface erbt auch Eigenschaften von ExtendableEvent
.
-
Gibt ein Array mit den geänderten Cookies zurück.
-
Gibt ein Array mit den gelöschten Cookies zurück.
Instanz-Methoden
Dieses Interface erbt auch Methoden von ExtendableEvent
.
Beispiele
Im folgenden Beispiel verwenden wir CookieStoreManager.getSubscriptions()
, um eine Liste bestehender Abonnements zu erhalten. (In Service Workern ist ein Abonnement erforderlich, um Ereignisse zu lauschen.) Wir melden uns von bestehenden Abonnements mit CookieStoreManager.unsubscribe()
ab und abonnieren dann das Cookie mit dem Namen 'COOKIE_NAME' mit CookieStoreManager.subscribe()
. Wenn dieses Cookie geändert wird, protokolliert der Ereignislistener das Ereignis in der Konsole. Dies wird ein ExtendableCookieChangeEvent
Objekt sein, mit der changed
oder deleted
Eigenschaft, 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 |
Browser-Kompatibilität
BCD tables only load in the browser