storage.StorageArea.onChanged
當儲存區域中的一個或多個專案更改時觸發,返回更改鍵的詳細資訊。與 storage.onChanged 相比,此事件允許您偵聽其中一個儲存區域的更改:local、managed、session 和 sync。
注意:在 Firefox 中,返回的資訊包括儲存區域內的所有鍵。此外,當底層資料沒有更改時,也可能呼叫回撥。透過檢查每個返回鍵的 storage.StorageChange 物件可以找到已更改專案的詳細資訊。請參閱 Firefox bug 1833153。
Firefox 僅在重新啟動時載入託管儲存內容(來自 JSON manifest (native manifest) 檔案 或 3rdparty enterprise policy)的更改。因此,此事件在 Firefox 中永遠不會觸發。
語法
js
// local can also be sync, managed, or session
browser.storage.local.onChanged.addListener(listener)
browser.storage.local.onChanged.removeListener(listener)
browser.storage.local.onChanged.hasListener(listener)
事件有三個函式
addListener(listener)-
向此事件新增監聽器。
removeListener(listener)-
停止監聽此事件。
listener引數是要移除的偵聽器。 hasListener(listener)-
檢查
listener是否已為此事件註冊。如果正在監聽,則返回true,否則返回false。
addListener 語法
引數
監聽器-
當此事件發生時呼叫的函式。該函式將傳遞此引數
changes-
object。描述更改的物件。它包含一個屬性,用於表示已更改的每個鍵。屬性名是已更改鍵的名稱,其值是storage.StorageChange物件,描述了對該專案的更改。
示例
js
/*
Log the old value and its new value of
changes in the local storage.
*/
function logStorageChange(changes) {
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.local.onChanged.addListener(logStorageChange);
瀏覽器相容性
載入中…
注意:此 API 基於 Chromium 的 chrome.storage API。本文件摘自 Chromium 程式碼中的 storage.json。