--- title: storage slug: Mozilla/Add-ons/WebExtensions/API/storage tags: - Add-ons - Extensions - Strorage translation_of: Mozilla/Add-ons/WebExtensions/API/storage ---
{{AddonSidebar}}
使浏览器扩展能够储存及获取数据,以及监听储存的数据的变化。

此存储系统API基于 Web Storage API, 并有少许不同。

为了使用该API,您需要在manifest.json文件包含"storage"权限。每一个浏览器扩展有自己的储存区域,每一个储存区域又分为几种不同的存储类型。

虽然此API类似于{{domxref("Window.localStorage")}},但仍建议您不要在插件中使用Window.localStorage。当用户由于隐私原因清除历史浏览记录及数据时,火狐会将在浏览器扩展使用 localStorage API存储的数据一并清除。而使用 storage.localAPI存储的数据将会恰当保留。

类型

{{WebExtAPIRef("storage.StorageArea")}}
代表存储区域的对象
{{WebExtAPIRef("storage.StorageChange")}}
代表改变一个储存区域的对象

属性

storage有3个属性,每一个代表不同的存储区域。

{{WebExtAPIRef("storage.sync")}}
表示一个同步的储存区域。在此区域的数据通过浏览器进行同步,用户可通过登录使用不同的设备访问到浏览器所有可用的实例对象。
{{WebExtAPIRef("storage.local")}}
表示一个本地的存储区域。此区域的数据属于其所在的插件。
{{WebExtAPIRef("storage.managed")}}
表示管理的存储区域。此区域的数据由本域名下的管理员设置且对该插件是只读的。试图修改此区域数据会得到一个错误。

事件

{{WebExtAPIRef("storage.onChanged")}}
当storage有数据变化时,此事件将被触发。

浏览器兼容性

{{Compat("webextensions.api.storage")}}

在Edge中的不兼容

Promises在Edge中不被支持,使用callbacks代替。

{{WebExtExamples("h2")}}

Acknowledgements

这个API基于Chromium的 chrome.storage API. 这篇文档也来源于Chromium 代码中的 storage.json.

Microsoft Edge的适配数据由Microsoft Corporation提供并且被包含在Creative Commons Attribution 3.0 United States License许可证下.