javascript-为什么我不能使用存储的变量而不是本地存储?

时间:2017-11-03 12:43:40

标签: javascript

所以我尝试将以下代码替换为使用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();
}

为什么它不起作用?

1 个答案:

答案 0 :(得分:2)

刷新页面时,清除任何变量。因此if(!myName)返回true,并再次提示用户。 LocalStorage允许您将变量保存为浏览器中页面刷新之间的键/值对。

另外,请查看sessionStorage与localStorage:Artemis

的答案