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。