[英]Uncaught (in promise) TypeError: localStorage.setItem is not a function
我想用 localstorage 创建一个项目,但是当我用setItem
保存它时,错误显示如下:
未捕获(承诺)TypeError:localStorage.setItem 不是 function
这是我的代码:
var dataPerson = {
name: "Jhon",
old: 20,
family: "Doe",
};
console.log(dataPerson);
if (typeof(Storage) !== "undefined") {
// Store
localStorage.setItem("data", JSON.stringify(dataPerson));
} else {
alert("Sorry, your browser does not support Web Storage...");
}
我用的是jQuery v3.4.1,谢谢
您可以尝试从window
object 调用localStorage
...
window.localStorage.setItem("data", JSON.stringify(dataPerson));
这对我有用。
如果您在其他地方重新定义了 localStorage,请再次检查您的代码。
该代码完全有效。 https://stackblitz.com/edit/js-jpzvta?embed=1&file=index.js
来自https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage :
例外情况
SecurityError 请求违反了策略决定,或者源不是有效的方案/主机/端口元组(例如,如果源使用文件:或数据:方案,就会发生这种情况)。 例如,用户可能将其浏览器配置为拒绝为指定来源保留数据的权限。
所以你应该用 try-catch 包裹你的代码,这将解决你的问题
未捕获(承诺)TypeError:localStorage.setItem 不是 function
在https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API中,你有一个例子,考虑到你的特殊例外,我首先
特征检测localStorage
要能够使用localStorage,我们首先要验证它在当前浏览session中是否被支持和可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.