Spec-Zone.ru › Web APIs

Изменяемое событие изменения куки

Ограниченная доступность

Эта функция не является базовой, так как она не работает во всех наиболее распространённых браузерах.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Примечание: Эта функция доступна только в Сервисных рабочих процессах.

Интерфейс ExtendableCookieChangeEvent API хранилища куки — это тип события, передаваемого событию cookiechange, которое срабатывает в ServiceWorkerGlobalScope при изменении любой куки, которая соответствует списку подписок на изменения куки сервисного рабочего процесса. Событие изменения куки состоит из куки и типа (либо "изменено", либо "удалено").

Изменения куки, которые вызывают срабатывание ExtendableCookieChangeEvent, это:

  • Куки создаётся, и её не удаляют сразу. В этом случае type имеет значение "изменено".
  • Куки создаётся, и её удаляют сразу. В этом случае type имеет значение "удалено".
  • Куки удаляется. В этом случае type имеет значение "удалено".

Примечание: Куки, которая заменяется из-за вставки другой куки с тем же именем, доменом и путём, игнорируется и не вызывает событие изменения.

Событие ExtendableEvent Изменяемое событие изменения куки

Конструктор

ExtendableCookieChangeEvent()

Создаёт новое ExtendableCookieChangeEvent.

Свойства экземпляра

Этот интерфейс также наследует свойства от ExtendableEvent.

ExtendableCookieChangeEvent.changed Только чтение

Возвращает массив изменённых куки.

ExtendableCookieChangeEvent.deleted Только чтение

Возвращает массив удалённых куки.

Методы экземпляра

Этот интерфейс также наследует методы от ExtendableEvent.

Примеры

В примере ниже мы используем CookieStoreManager.getSubscriptions() для получения списка существующих подписок. (В сервисных рабочих процессах для прослушивания событий требуется подписка.) Мы отписываемся от существующих подписок с помощью CookieStoreManager.unsubscribe(), а затем подписываемся на куки с именем 'COOKIE_NAME' с помощью CookieStoreManager.subscribe(). Если эта куки изменится, обработчик событий запишет событие в консоль. Это будет объект ExtendableCookieChangeEvent, у которого свойство changed или deleted содержит изменённую куки.

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);
});

Спецификации

Спецификация
API хранилища куки
# Изменяемое событие изменения куки

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
ExtendableCookieChangeEvent 87 87 Нет 73 Нет 87 Нет 62 Нет 14.0 87
ExtendableCookieChangeEvent 87 87 Нет 73 Нет 87 Нет 62 Нет 14.0 87
changed 87 87 Нет 73 Нет 87 Нет 62 Нет 14.0 87
deleted 87 87 Нет 73 Нет 87 Нет 62 Нет 14.0 87

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ExtendableCookieChangeEvent

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API