Изменяемое событие изменения куки
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех наиболее распространённых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна только в Сервисных рабочих процессах.
Интерфейс ExtendableCookieChangeEvent API хранилища куки — это тип события, передаваемого событию cookiechange, которое срабатывает в ServiceWorkerGlobalScope при изменении любой куки, которая соответствует списку подписок на изменения куки сервисного рабочего процесса. Событие изменения куки состоит из куки и типа (либо "изменено", либо "удалено").
Изменения куки, которые вызывают срабатывание ExtendableCookieChangeEvent, это:
- Куки создаётся, и её не удаляют сразу. В этом случае
typeимеет значение "изменено". - Куки создаётся, и её удаляют сразу. В этом случае
typeимеет значение "удалено". - Куки удаляется. В этом случае
typeимеет значение "удалено".
Примечание: Куки, которая заменяется из-за вставки другой куки с тем же именем, доменом и путём, игнорируется и не вызывает событие изменения.
Конструктор
-
Создаёт новое
ExtendableCookieChangeEvent.
Свойства экземпляра
Этот интерфейс также наследует свойства от ExtendableEvent.
-
Возвращает массив изменённых куки.
-
Возвращает массив удалённых куки.
Методы экземпляра
Этот интерфейс также наследует методы от 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);
});
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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