Javascript 本地存储不是';行不通

Javascript 本地存储不是';行不通,javascript,storage,local,Javascript,Storage,Local,我的代码仍然可以正常工作,但是本地存储根本不起作用。但控制台上说一切都很好。目标是将输入的文本保存到clientInfo变量中,以便刷新后信息保持不变。当我刷新时,虽然它根本不保存。这是我第一次使用本地存储,所以可能我遗漏了一些明显的东西。任何帮助都将是惊人的 let message = ''; let student; let question; var i; let security; let input; let returned = false; let late = false

我的代码仍然可以正常工作,但是本地存储根本不起作用。但控制台上说一切都很好。目标是将输入的文本保存到clientInfo变量中,以便刷新后信息保持不变。当我刷新时,虽然它根本不保存。这是我第一次使用本地存储,所以可能我遗漏了一些明显的东西。任何帮助都将是惊人的

    let message = '';
let student;
let question;
var i;
let security;
let input;
let returned = false;
let late = false;
let clientInfo;
const libraryAccess = document.getElementById('library');
const user = document.getElementById('user');
function signIn() {
   this.render = function(dialog){
       var winW = window.innerWidth;
       var winH = window.innerHeight;
       var dialogoverlay = document.getElementById('dialogoverlay');
       var dialogbox = document.getElementById('dialogbox');
       dialogoverlay.style.display = "block";
       dialogoverlay.style.height = winH+"px";
       dialogbox.style.left = (winW/2) - (550 * .5)+"px";
       dialogbox.style.top = "100px";
       dialogbox.style.display = "block";
       document.getElementById('dialogboxhead').innerHTML = "Type your first name to see your info:";
       document.getElementById('dialogboxbody').innerHTML = `<input type="text" id="input">`;
       document.getElementById('dialogboxfoot').innerHTML = '<button onclick="alert.ok()" id="sign">Sign In</button>';
       const input = document.getElementById('input');
       const signButton = document.getElementById('sign');
       function signClick() {
         signButton.addEventListener('click', () => {
               security = input.value;
               secure(); // calling secure function here because otherwise the function wont run properly if I place it elsewhere
         });
       }
       signClick();
   }
this.ok = function(){
  document.getElementById('dialogbox').style.display = "none";
  document.getElementById('dialogoverlay').style.display = "none";
}
}
var alert = new signIn();

user.addEventListener('click', () => {
   alert.render();
});
//Custom Function that replaces document.write with a better alternative
const print = (message) => {
  var outputDiv = document.getElementById('output');
  outputDiv.innerHTML = message;
}

// These are the categories
const getReport = (student) => {
  let report = `<h1 class="titleName" id="name"> ${student.name} </h1>`;
  `<ol class="lists">`
  report += `<li class="clientLi"> MemberShip: ${student.memberShip} </li>`;
  report += `<li class="clientLi"> MemberSince: ${student.memberSince} </li>`;
  report += `<li class="clientLi"> Points: ${student.points} </li>`;
  report += `<li class="clientLi"> Checking: $${student.checking} </li>`;
  report += `<li class="clientLi"> Debts: ${student.debts} </li>`;
  report += `<li class="clientLi"> Savings: $${student.savings + parseFloat(student.OuncesofSilver * 17.22) + parseFloat(student.goldGrams * 43.02)} </li>`;
  report += `<li class="clientLi"> Ounces of Silver: ${student.OuncesofSilver} </li>`;
  report += `<li class="clientLi"> Books Due: ${student.booksDue} </li>`;
  report += `<li class="clientLi"> GoldGrams: ${student.goldGrams} </li>`;
  `</ol>`
  return report;
}
// Alerts for when something goes above or below certain criteria
const notify = (urgent) => {

  library.addEventListener('click', () => {
      window.location = "library/library.html";
  });

}
//local data
var securityName = '';
 var localData = {
 clientName: 'luke',
 clientName2: 'julie',
 clientName3: 'brendon'
},
data;
 //set Fake local data
 localStorage.setItem('localData', JSON.stringify( localData ));

 //get localstorage
 var data = JSON.parse(localStorage.getItem('localData'));

 //check if data is valid
 if (data != null && typeof data != 'undefined'){
   secure(securityName, data); //call the function passing parameters
 }else{
   window.alert('localStorage is empty');
 }

 function secure() {
   var message = '';
   if (security !== null || security !== '' || security !== undefined) {
       //ADD YOUR CODE FOR SECURITY HERE - FOR TESTING PURPOSES IT WAS REMOVED.
       if (security === 'luke') {
         clientInfo = data.clientName;
         if (clientInfo === 'luke') {
           var i = 0;
           notify(student);
           message = getReport(students[0]);
           print(message);
         }
       }
       if (security === 'julie') {
         clientInfo = data.clientName2;
         if (clientInfo === 'julie') {
           var i = 1;
           notify(student);
           message = getReport(students[1]);
           print(message);
         }
       }
       if (security === 'brendon') {
         clientInfo = data.clientName3;
         if (clientInfo === 'brendon') {
           var i = 2;
           notify(student);
           message = getReport(students[2]);
           print(message);
         }
       } else {
         clientInfo = '';
         if (clientInfo === '') {

         }
       }
   }
 }

 localStorage.removeItem('clientName');
 localStorage.removeItem('clientName2');
 localStorage.removeItem('clientName3');
print(message);
print(message);
let message='';
让学生;
让我们提问;
var i;
让安全;
让输入;
让返回=假;
让迟到=错误;
让clientInfo;
const libraryAccess=document.getElementById('library');
const user=document.getElementById('user');
函数签名(){
this.render=函数(对话框){
var winW=window.innerWidth;
var winH=window.innerHeight;
var dialogoverlay=document.getElementById('dialogoverlay');
var dialogbox=document.getElementById('dialogbox');
dialogoverlay.style.display=“block”;
dialogoverlay.style.height=winH+“px”;
dialogbox.style.left=(winW/2)-(550*.5)+“px”;
dialogbox.style.top=“100px”;
dialogbox.style.display=“block”;
document.getElementById('dialogboxhead')。innerHTML=“键入您的名字以查看您的信息:”;
document.getElementById('dialogboxbody')。innerHTML=`;
document.getElementById('dialogboxfoot')。innerHTML='Sign-In';
const input=document.getElementById('input');
const signButton=document.getElementById('sign');
函数signClick(){
signButton.addEventListener('单击',()=>{
安全性=输入值;
secure();//在此处调用secure函数,因为如果我将其放置在其他位置,该函数将无法正常运行
});
}
signClick();
}
this.ok=函数(){
document.getElementById('dialogbox').style.display=“无”;
document.getElementById('dialogoverlay').style.display=“无”;
}
}
var alert=新登录();
user.addEventListener('click',()=>{
alert.render();
});
//用更好的替代方案替换document.write的自定义函数
常量打印=(消息)=>{
var outputDiv=document.getElementById('output');
outputDiv.innerHTML=消息;
}
//这些是类别
const getReport=(学生)=>{
let report=`${student.name}`;
``
报告+=`
  • 成员:${student.MemberShip}
  • `; report+=`
  • MemberSince:${student.MemberSince}
  • `; 报告+=`
  • 分数:${student.Points}
  • `; 报告+=`
  • 检查:$${student.Checking}
  • `; 报告+=`li class=“clientLi”>债务:${student.deborts}`; 报告+=`
  • 节省:$${student.Savings+parseFloat(student.OuncesofSilver*17.22)+parseFloat(student.goldGrams*43.02)}
  • `; 报告+=`
  • 盎司银:${student.盎司银}
  • `; 报告+=`
  • 图书到期:${student.booksDue}
  • `; 报告+=`
  • GoldGrams:${student.GoldGrams}
  • `; `` 返回报告; } //当某些内容高于或低于特定标准时发出警报 const notify=(紧急)=>{ library.addEventListener('click',()=>{ window.location=“library/library.html”; }); } //本地数据 var securityName=''; var localData={ 客户名称:“卢克”, 客户名称2:'朱莉', 客户名称3:“布伦顿” }, 数据 //设置假本地数据 setItem('localData',JSON.stringify(localData)); //获取本地存储 var data=JSON.parse(localStorage.getItem('localData')); //检查数据是否有效 如果(数据!=null&&typeof数据!=“未定义”){ secure(securityName,data);//调用传递参数的函数 }否则{ window.alert('localStorage为空'); } 函数安全(){ var消息=“”; if(安全性!==null | |安全性!==''| |安全性!==未定义){ //在此处添加您的安全代码-出于测试目的,已将其删除。 如果(安全性=='luke'){ clientInfo=data.clientName; 如果(clientInfo=='luke'){ var i=0; 通知(学生); message=getReport(学生[0]); 打印(信息); } } 如果(安全性=='julie'){ clientInfo=data.clientName2; 如果(clientInfo==='julie'){ var i=1; 通知(学生); message=getReport(学生[1]); 打印(信息); } } 如果(安全性=='brendon'){ clientInfo=data.clientName3; 如果(clientInfo=='brendon'){ var i=2; 通知(学生); message=getReport(学生[2]); 打印(信息); } }否则{ clientInfo=''; 如果(clientInfo==''){ } } } } localStorage.removietem('clientName'); localStorage.removietem('clientName2'); localStorage.removietem('clientName3'); 打印(信息); 打印(信息);
    在这里测试时,我发现获取本地存储值没有问题

    我只看到您有一个名为
    secure()
    的函数,您从未调用过它,因此它从未检查过任何东西。。。所以我做了一些调整,看起来效果不错

    请参阅下面的代码:(请记住StackOverflow不允许本地存储,因此,这里它将抛出一个错误)

    这里有一把小提琴来检查它的工作情况:

    document.addEventListener('DOMContentLoaded',function(){
    var securityName='';
    var localData={
    客户名称:“卢克”,
    客户名称2:'朱莉',
    客户名称3:“布伦顿”
    };
    //设置假本地数据
    setItem('localData',JSON.stringify(localData));
    //获取本地存储
    var data=JSON.parse(localStorage.getItem('localData'));
    //检查数据是否有效
    如果(数据!=null&&typeof数据!=“未定义”){
    secure(securityName,data);//调用传递参数的函数