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: 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.

Event ExtendableEvent ExtendableCookieChangeEvent

Konstruktor

ExtendableCookieChangeEvent()

Erstellt ein neues ExtendableCookieChangeEvent.

Instanz-Eigenschaften

Dieses Interface erbt auch Eigenschaften von ExtendableEvent.

ExtendableCookieChangeEvent.changed Nur lesbar

Gibt ein Array mit den geänderten Cookies zurück.

ExtendableCookieChangeEvent.deleted Nur lesbar

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.

js
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