storage.local

表示 local 存储区域。local 存储中的项仅限于扩展安装的计算机。

浏览器可能会限制扩展在本地存储区域中存储的数据量。例如

  • 在 Chrome 中,扩展程序使用此 API 存储的数据量限制为 5MB,除非它具有 "unlimitedStorage" 权限
  • 在 Firefox 中,扩展程序可以存储的数据量受应用于 IndexedDB 数据库的 存储限制。打算存储超出此限制的数据的扩展程序需要 "unlimitedStorage" 权限。但是,具有 "unlimitedStorage" 权限的扩展程序在存储使用的磁盘空间超过全局限制时,可能会收到配额超出错误。

卸载扩展程序时,其关联的本地存储将被清除。

此外,在 Firefox 中,您可以通过访问 about:config 并将以下浏览器首选项设置为 true 来阻止浏览器在卸载时清除本地存储:"keepUuidOnUninstall""keepStorageOnUninstall"。此功能旨在帮助开发人员测试他们的扩展程序。扩展程序本身无法更改这些首选项。

尽管此 API 与 Window.localStorage 类似,但建议不要在扩展代码中使用 Window.localStorage。Firefox 在用户出于隐私原因清除浏览历史记录和数据等各种情况下会清除扩展程序使用 localStorage API 存储的数据。使用 storage.local API 保存的数据在这些情况下会得到正确持久化。

方法

local 对象实现了 storage.StorageArea 类型上定义的方法

storage.local.get()

从存储区域检索一个或多个项目。

storage.local.getBytesInUse()

获取存储区域中一个或多个项目所使用的存储空间(以字节为单位)。

storage.local.getKeys()

检索存储区域中所有项目的键。

storage.local.set()

将一个或多个项目存储到存储区域。如果项目已存在,则更新其值。

storage.local.remove()

从存储区域中移除一个或多个项目。

storage.local.clear()

移除存储区域中的所有项目。

事件

local 对象实现了 storage.StorageArea 类型上定义的事件

storage.local.onChanged

当存储区域中的一个或多个项目发生更改时触发。

扩展程序示例

浏览器兼容性

注意:此 API 基于 Chromium 的 chrome.storage API。本文档源自 Chromium 代码中的 storage.json