storage.onChanged
Срабатывает, когда storageArea.set, storageArea.remove или storageArea.clear выполняется для области хранения.
Когда это событие вызывается storageArea.set, возможно получение обратного вызова, когда нет изменений в базовых данных. Кроме того, возвращаемая информация включает все ключи в области хранения storageArea.set. Расширение может определить произошедшие изменения, проанализировав содержимое аргумента changes, полученного слушателями onChanged.
Синтаксис
browser.storage.onChanged.addListener(callback) browser.storage.onChanged.removeListener(listener) browser.storage.onChanged.hasListener(listener)
События имеют три функции:
addListener(callback)-
Добавляет слушателя к этому событию.
removeListener(listener)-
Прекращает прослушивание этого события. Аргумент
listener— это слушатель, который нужно удалить. hasListener(listener)-
Проверяет, зарегистрирован ли
listenerдля этого события. Возвращаетtrue, если он прослушивает, иfalse, в противном случае.
Синтаксис addListener
Параметры
callback-
Функция, вызываемая при возникновении этого события. Функции передаются следующие аргументы:
changes-
object. Объект, описывающий изменение. Этот объект содержит свойства для всех ключей в области хранения, включённых в вызовstorageArea.set, даже если значения ключей не изменились. Название каждого свойства — это имя каждого ключа. Значение каждого ключа — объектstorage.StorageChange, описывающий изменение этого элемента. areaName-
string. Имя области хранения ("sync","local", или"managed"), к которой были внесены изменения.
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
onChanged |
Да | 14 | 45 | ? | Да | 14 | ? | ? | 48 | ? | 15 | ? |
Примеры
/* Log the storage area that changed, then for each item changed, log its old value and its new value. */ function logStorageChange(changes, area) { console.log(`Change in storage area: ${area}`); const changedItems = Object.keys(changes); for (const item of changedItems) { console.log(`${item} has changed:`); console.log("Old value: ", changes[item].oldValue); console.log("New value: ", changes[item].newValue); } } browser.storage.onChanged.addListener(logStorageChange);
Примеры расширений
Примечание: Этот API основан на API chrome.storage Chromium. Данная документация взята из storage.json кода Chromium.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/onChanged