Window: localStorage 属性

localStoragewindow 接口的一个只读属性,允许您访问 DocumentStorage 对象;存储的数据在浏览器会话之间保存。

localStorage 类似于 sessionStorage,但 localStorage 数据没有过期时间,而 sessionStorage 数据在页面会话结束时(即关闭页面时)被清除。(在“隐私浏览”或“隐身”会话中加载的文档的 localStorage 数据在最后一个“隐私”选项卡关闭时被清除。)

一个 Storage 对象,可用于访问当前源的本地存储空间。

异常

SecurityError

在以下情况下抛出

  • 源不是 有效的方案/主机/端口元组。例如,如果源使用 file:data: 方案,则可能发生这种情况。
  • 请求违反了策略决策。例如,用户已配置浏览器以阻止页面持久化数据。

请注意,如果用户阻止了 Cookie,浏览器可能会将其解释为阻止页面持久化数据的指令。

描述

使用 localStorage 存储的键和值始终采用 UTF-16 字符串格式,每个字符使用两个字节。与对象一样,整数键会自动转换为字符串。

localStorage 数据特定于文档的协议。特别是,对于通过 HTTP 加载的站点(例如,http://example.com),localStorage 返回的对象与通过 HTTPS 加载的相应站点的 localStorage 返回的对象不同(例如,https://example.com)。

对于从 file: URL 加载的文档(即,直接从用户本地文件系统在浏览器中打开的文件,而不是从 Web 服务器提供服务),localStorage 行为的要求未定义,并且可能因不同的浏览器而异。

在所有当前浏览器中,localStorage 似乎为每个 file: URL 返回不同的对象。换句话说,每个 file: URL 似乎都有其自己的唯一本地存储区域。但是,对该行为没有任何保证,因此您不应该依赖它,因为如上所述,file: URL 的要求仍然未定义。因此,浏览器可能会随时更改其对 localStoragefile: URL 处理。事实上,一些浏览器已经随着时间的推移改变了它们的处理方式。

示例

以下代码段访问当前域的本地 Storage 对象,并使用 Storage.setItem() 向其添加数据项。

js
localStorage.setItem("myCat", "Tom");

读取 localStorage 项的语法如下

js
const cat = localStorage.getItem("myCat");

删除 localStorage 项的语法如下

js
localStorage.removeItem("myCat");

删除所有 localStorage 项的语法如下

js
localStorage.clear();

注意:有关完整示例,请参阅 使用 Web 存储 API 文章。

规范

规范
HTML 标准
# dom-localstorage-dev

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅