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> |
Browser-Kompatibilität
Loading…