应该在页面加载时调用我的脚本,但是if语句中的某些内容无法正常工作。
我知道脚本被调用是因为onload,警报起作用。我不知道if语句内部发生了什么。
function nameCheck() {
alert("test");
if(localstorage.getItem("name" === "undefined") || localstorage.getItem("name" === null)) {
var name = prompt("Please enter your name");
localStorage.setItem("name", name);
location.reload();
}
else {
document.getElementById("welcome") = "Hello, " + localStorage.getItem("name");
}
}
<body onload="nameCheck()">
<h1 id="welcome"></h1>
我希望代码检查您的名字是否在localstorage中,如果是,请获取id为“ welcome”的元素并说“ Hello,[name]”。如果它不在本地存储中,我希望它提示您输入名称,保存并重新加载。
即使页面重新加载,id为“ welcome”的元素也将保持空白。
答案 0 :(得分:3)
您需要更改元素的innerHTML
。
document.getElementById("welcome").innerHTML = "Hello, " + localStorage.getItem("name");
答案 1 :(得分:2)
以及@Gendarme上面所说的内容(约innerHTML
),您还在以错误的方式检查localStorage值。
例如,您正在检查“ name
”变量是否为空,如下所示:
localStorage.getItem("name" === null)
但是应该是这样的:
localStorage.getItem("name") === null
在您的代码中的单词/术语“ localStorage
”(在第一个if语句中)也有一个小“ s”,并且应该大写“ S”。
因此完整的代码应如下所示:
function nameCheck() {
alert("test");
if(localStorage.getItem("name") === undefined || localStorage.getItem("name") === null) {
var name = prompt("Please enter your name");
localStorage.setItem("name", name);
location.reload();
} else {
document.getElementById("welcome").innerHTML = "Hello, " + localStorage.getItem("name");
}
}
答案 2 :(得分:1)
对上面的@Sarah代码也做了一点改进,您不需要分别验证其是否未定义或为null。
您可以使用:
AppBundle\EventListener\UserHandler:
arguments:
$stripeKey: "%secret_stripe_key%"
$session: "@session"
$logger: "@monolog.logger"
tags:
- { name: doctrine.event_listener, event: prePersist }
- { name: doctrine.event_listener, event: preUpdate }
莎拉(Sarah)关于if(!localStorage.getItem("name"))
的大写字母S的好发现
因此,您的代码应类似于:
localStorage
答案 3 :(得分:0)
代替此if(localstorage.getItem("name" === "undefined") || localstorage.getItem("name" === null))
,将代码编写为:
if(localStorage.getItem("name") == "undefined" || localStorage.getItem("name") == null)
由于您的代码格式首先是错误的,因此预期无法正常工作。要从localStorage获取密钥对值,您应该将其写为localStorage.getItem(key)。现在,localStorage仅支持将字符串用作值,因此在使用比较符号时要小心,因为您知道localStorage.getItem(name) === null
将不起作用,因此请使用{{ 1}}。