Window:localStorage 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

window 接口的 localStorage 只读属性允许你访问 Document Storage 对象;存储的数据在浏览器会话中是持久化的。

localStorage 类似于 sessionStorage,不同之处在于 localStorage 数据没有过期时间,而 sessionStorage 数据在页面会话结束时(即页面关闭时)会被清除。(在“隐私浏览”或“无痕”会话中加载的文档的 localStorage 数据在最后一个“隐私”标签页关闭时会被清除。)

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

异常

SecurityError

在以下情况之一中抛出

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

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

描述

使用 localStorage 存储的键和值都是 UTF-16 字符串格式。与对象一样,整数键会自动转换为字符串。

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

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

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

示例

以下代码片段访问当前域的本地 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 Storage API 文章以获取完整示例。

规范

规范
HTML
# dom-localstorage-dev

浏览器兼容性

另见