所以我尝试将以下代码替换为使用localStorage
var myButton = document.querySelector('button');
var myHeading = document.querySelector('h1');
function setUserName() {
var myName = prompt('Please enter your name.');
localStorage.setItem('name', myName);
myHeading.textContent = 'Mozilla is cool, ' + myName;
}
if(!localStorage.getItem('name')) {
setUserName();
} else {
var storedName = localStorage.getItem('name');
myHeading.textContent = 'Mozilla is cool, ' + storedName;
}
myButton.onclick = function() {
setUserName();
}
使用此代码从存储的变量中检索。
var myButton = document.querySelector('button');
var myHeading = document.querySelector('h1');
var myName;
function setUserName() {
myName = prompt('Please enter your name.');
//localStorage.setItem('name', myName);
myHeading.textContent = 'Mozilla is cool, ' + myName;
}
if(!myName) {
setUserName();
} else {
//var storedName = localStorage.getItem('name');
myHeading.textContent = 'Mozilla is cool, ' + myName;
}
myButton.onclick = function() {
setUserName();
}
为什么它不起作用?
答案 0 :(得分:2)
刷新页面时,清除任何变量。因此if(!myName)
返回true,并再次提示用户。 LocalStorage允许您将变量保存为浏览器中页面刷新之间的键/值对。
另外,请查看sessionStorage与localStorage:Artemis
的答案