gpt4 book ai didi

javascript - 仅在登录时显示本地存储中的对象

转载 作者:行者123 更新时间:2023-11-28 05:42:43 24 4
gpt4 key购买 nike

我正在做一个关于创建网站的学校项目。我已成功在注册帐户后将用户数据保存到本地存储中。当我昨天尝试使用以下代码时,这些代码可以工作:当我以用户身份登录后, key “currentUser”将出现在本地存储中。但是,在我清除本地存储(数组中的用户太多)并再次重新运行代码后,currentUser 将不再显示在本地存储中。这是我的代码:从编辑个人资料页面: `

<script>
var currentUser=null;
document.addEventListener("DOMContentLoaded",loadUserData);

function loadUserData() {
currentUser = localStorage.getItem("currentUser");
if(currentUser!=null) {
currentUser = JSON.parse(currentUser);

}
}
</script>

上面的代码加上登录 html 中的代码将 currentUser 显示为本地存储中的 key (仅应在以当前用户身份登录时出现)从登录页面:

    function checkUser(ev) {
ev.preventDefault();
var status=false;

var username = document.getElementById("username").value;
var password = document.getElementById("password").value;


for(var i=0;i<userList.length;i++) {
var u=userList[i];
console.log(u.username);
console.log(u.password);
if (u.username==username && u.password==password){
status=true;
currentUser=userList[i];
break;
}
}

if (status==true){
location.href="EditProfile.html";
}

}

我问过我的 friend ,她说我引用用户名和密码的方式不正确,需要重写大部分代码?

最佳答案

登录用户时,您需要存储在 localStorage 中。当用户注销时,您应该清除 localStorage CurrentUser Key。

类似这样的事情:

  function checkUser(ev) {
ev.preventDefault();
var status=false;
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;


for(var i=0;i<userList.length;i++) {
var u=userList[i];
console.log(u.username);
console.log(u.password);
if (u.username==username && u.password==password){
status=true;
localStorage.setItem('CurrentUser', username);
currentUser=userList[i];
break;
}
}

if (status==true){
location.href="EditProfile.html";
}

}

使用它可以在用户注销时从 localStorage 中删除 key 。

localStorage.removeItem(key);

关于javascript - 仅在登录时显示本地存储中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com