storage
允許擴充套件程式儲存和檢索資料,並監聽儲存項的變化。
儲存系統基於 Web Storage API,但有一些區別。其他區別包括:
- 它是非同步的。
- 值的作用域僅限於擴充套件程式,而不是特定的域(即,同一組鍵/值對可供後臺上下文和內容指令碼中的所有指令碼使用)。
- 儲存的值可以是任何可 JSON 化的值,而不僅僅是
String。除了其他值之外,這還包括:Array和Object,但前提是它們的內容可以表示為 JSON,這不包括 DOM 節點。您不需要在儲存之前將值轉換為 JSONString,但它們在內部表示為 JSON,因此有此要求,即它們必須是可 JSON 化的。 - 可以在同一次 API 呼叫中設定或檢索多個鍵/值對。
要使用此 API,您需要在您的 manifest.json 檔案中包含 `"storage"` 許可權。
每個擴充套件程式都有自己的儲存區域,可以分為不同型別的儲存。
雖然此 API 與 Window.localStorage 相似,但建議您不要在擴充套件程式程式碼中使用 Window.localStorage 來儲存與擴充套件程式相關的資料。Firefox 將在使用者出於隱私原因清除瀏覽歷史記錄和資料時清除使用 localStorage API 儲存的資料,而使用 storage.local API 儲存的資料將在此類情況下正確持久化。
您可以在開發者工具箱的“Storage Inspector”標籤頁下的“Extension Storage”專案中檢查儲存的資料,該工具箱可透過 about:debugging 訪問。
注意:儲存區域未加密,不應用於儲存機密的個人資訊。
型別
storage.StorageArea-
表示儲存區域的物件。
storage.StorageChange-
表示儲存區域發生更改的物件。
屬性
storage 有四個屬性,分別代表可用的不同型別的儲存區域。
storage.local-
表示
local儲存區域。local儲存中的項僅限於安裝該擴充套件程式的機器。 storage.managed-
表示
managed儲存區域。managed儲存中的項由域管理員設定,對擴充套件程式是隻讀的。嘗試修改此名稱空間將導致錯誤。 storage.session-
表示
session儲存區域。session儲存中的項儲存在記憶體中,不會持久化到磁碟。 storage.sync-
表示
sync儲存區域。sync儲存中的項由瀏覽器同步,並且對於使用者登入的同一瀏覽器所有例項(跨不同裝置)都可用。
事件
storage.onChanged-
當任何儲存區域中的一項或多項發生更改時觸發。
擴充套件程式示例
瀏覽器相容性
載入中…
注意:此 API 基於 Chromium 的 chrome.storage API。本文件源自 Chromium 程式碼中的 storage.json。