我希望將玩游戲的分數存盤在本地存盤中 topScore 旁邊的 usrObj 中。但是,它只存盤用戶姓名旁邊的分數。
來自 index.html 的 js 代碼
<script>
loadRankingTable();
window.onload = ()=> {
//Check login
if(sessionStorage.loggedInUser !== undefined){
window.localStorage.setItem(sessionStorage.loggedInUser, highscore);
document.getElementById("Greeting").innerHTML = sessionStorage.loggedInUser;
}
}
</script>
練習.js
function register(){
let password1 = document.getElementById("PasswordInput").value
let password2 = document.getElementById("PasswordInputConfirm").value
let username = document.getElementById("Username").value
let name = document.getElementById("NameInput").value;
let password = document.getElementById("PasswordInput").value;
let usrObj = {
username: username,
password: password,
topScore: 0
}
if (password1 == password2){
localStorage[name] = JSON.stringify(usrObj);
document.getElementById("FeedbackPara").innerHTML= "";
}
else{
document.getElementById("FeedbackPara").innerHTML= "Passwords don't match.";
}
}
所以基本上不是像這樣存盤資料的本地存盤:“用戶,200”,我希望它是這樣的:“用戶名:用戶名,密碼:密碼,topScore:200”
uj5u.com熱心網友回復:
檢索本地存盤的當前值作為JSON,更新分數,然后再次保存。
loadRankingTable();
window.onload = () => {
//Check login
if (sessionStorage.loggedInUser !== undefined) {
let oldData = localStorage.getItem(sessionStorage.loggedInUser);
if (oldData) {
oldData = JSON.parse(oldData);
oldData.topScore = highscore;
localStorage.setItem(sessionStorage.loggedInUser, JSON.stringify(oldData);
}
document.getElementById("Greeting").innerHTML = sessionStorage.loggedInUser;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/384551.html
標籤:javascript 目的 本地存储
