Spec-Zone.ru › Web Extensions

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

Примеры расширений

  • proxy-blocker

Примечание: Этот 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

Spec-Zone.ru

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