用localStorage进行本地存取数据时报错,但在别人的浏览器可用的原因

本文介绍了解决谷歌浏览器中因被拒绝访问localStorage属性而引发的Uncaught DOM Exception错误的方法。该问题可通过关闭浏览器设置中的第三方Cookie选项来解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错:Uncaught DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.


解决办法:和中文路径没有关系,我用的是谷歌,直接把设置里面的这个关掉就行了



谷歌浏览器: 高级 > 隐私设置和安全性 > 内容设置 > Cookie > 阻止第三方Cookie

### 使用 `localStorage` 进行浏览器端的数据存取 #### 存储数据 为了向 `localStorage` 添加数据,可以使用 `setItem()` 方法。此方法接受两个参数:一个是键名(字符串形式),另一个是要存储的值。 ```javascript // 设置名为 "username" 的条目,其值为 "JohnDoe" localStorage.setItem("username", "JohnDoe"); ``` 对于更复杂的数据结构,比如对象或数组,则可以通过 JSON 序列化来保存: ```javascript const user = { name: 'Alice', age: 28 }; localStorage.setItem('userProfile', JSON.stringify(user)); ``` #### 获取数据 要从 `localStorage` 中检索已有的数据项,可调用 `getItem()` 函数并传入相应的键作为参数。 ```javascript let username = localStorage.getItem("username"); // 返回 "JohnDoe" // 如果之前存储的是序列化的JSON对象,则需反序列化处理 let userProfile = JSON.parse(localStorage.getItem('userProfile')); console.log(userProfile.name); // 输出 Alice ``` #### 更新现有记录 当需要修改已经存在的键对应的值,同样采用 `setItem()` 来覆盖旧的内容即可实现更新目的。 ```javascript localStorage.setItem("username", "JaneSmith"); // 覆盖原来的 JohnDoe ``` #### 删除单个条目或多条目 如果想要移除某个特定的键及其关联的数据,应该利用 `removeItem()`;而清空整个域下所有的 `localStorage` 数据则需要用到 `clear()` 方法。 ```javascript localStorage.removeItem("username"); // 移除用户名字段 localStorage.clear(); // 清理所有本地储存的信息 ``` #### 遍历所有键值对 有也需要遍历全部存储于 `localStorage` 内部的所有项目,在这种情况下,可以借助循环语句配合 `key(index)` 和 `length` 属性完成迭代访问每一个元素。 ```javascript for (let i = 0; i < localStorage.length; ++i){ let currentKey = localStorage.key(i); console.log(`${currentKey}: ${localStorage.getItem(currentKey)}`); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值