Window: localStorage 属性
localStorage
是 window
接口的一个只读属性,允许您访问 Document
的 源 的 Storage
对象;存储的数据在浏览器会话之间保存。
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 的要求仍然未定义。因此,浏览器可能会随时更改其对 localStorage
的 file:
URL 处理。事实上,一些浏览器已经随着时间的推移改变了它们的处理方式。
示例
以下代码段访问当前域的本地 Storage
对象,并使用 Storage.setItem()
向其添加数据项。
localStorage.setItem("myCat", "Tom");
读取 localStorage
项的语法如下
const cat = localStorage.getItem("myCat");
删除 localStorage
项的语法如下
localStorage.removeItem("myCat");
删除所有 localStorage
项的语法如下
localStorage.clear();
注意:有关完整示例,请参阅 使用 Web 存储 API 文章。
规范
规范 |
---|
HTML 标准 # dom-localstorage-dev |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。