【发布时间】:2018-02-15 04:59:21
【问题描述】:
我已经搜索了这么多小时仍然没有解决我的问题:无法检查 localStorage 中是否存在密钥。
在我的聊天应用程序中,一旦用户打开一个新选项卡,我想检查是否已经有注册用户,我使用 localStorage 变量通过以下方式进行检查:
window.addEventListener('load', function () {
var s=localStorage.getItem("localStor");
if (s === null){
console.log("is null"); //does not enter here
}else{
console.log(s); // prints [object *O*bject]
console.log(JSON.parse(s).name); //getting an error (see below)
}
}, false);
解析时出现错误:
未捕获的 SyntaxError:位置 1 处 JSON 中的意外标记 o 在 JSON.parse (
<anonymous>)
我在localStorage 中设置localStor 项的第一个位置是仅在注册之后,并且它位于仅在单击按钮HTML 元素时调用的函数内。但从逻辑上讲它不应该进入从一开始就在else。
知道为什么这不起作用吗?任何帮助表示赞赏。
【问题讨论】:
-
验证您的 JSON 并将所有内容写入
try..watch -
@vsync 没有任何改变,我试图提醒错误但什么也没发生
-
您做得正确,如此处所述:stackoverflow.com/questions/3262605/… 我怀疑您的
JSON.parse()中的name属性无效......或类似的东西。尝试仅记录JSON.parse(s)结果以查看您的值是什么样的。 -
@Marc,我担心的不是错误,请再读一遍
-
是的,@user8244016,我了解您的问题。我认为您的项目位于 localStorage 中,否则
getItem()将返回 null。以下是关于 localStorage 何时被清除的一些信息:stackoverflow.com/questions/8537112/…