Javascript 使用不带JSON的localStorage存储对象
我需要能够使用localStorage或任何真正有效的工具保存用户的信息。我对localStorage了解不多,但我认为为了在其中存储对象,我需要在object maker中使用一个函数。也许我错了,但这就是我发帖的原因 我认为可以使用localStorage.username(this.username)来存储用户名,但现在我需要了解如何在不使用JSON stringify的情况下存储整个对象。 localStorage.newPlayer()Javascript 使用不带JSON的localStorage存储对象,javascript,jquery,html,Javascript,Jquery,Html,我需要能够使用localStorage或任何真正有效的工具保存用户的信息。我对localStorage了解不多,但我认为为了在其中存储对象,我需要在object maker中使用一个函数。也许我错了,但这就是我发帖的原因 我认为可以使用localStorage.username(this.username)来存储用户名,但现在我需要了解如何在不使用JSON stringify的情况下存储整个对象。 localStorage.newPlayer() 如果您需要查看完整的代码,请告诉我您能解释一下
如果您需要查看完整的代码,请告诉我您能解释一下为什么不接受
JSON.stringify(new Player())
如果您不能使用JSON,只需将每个名称/值对分别存储到localStorage
中,然后将它们分别取出,或者构建一个自定义字符串以放入localStorage
,但是JSON.stringify()
确实最适合您的场景
我认为您只需要将其从播放器功能中删除:
this.implement = function() {
$('#user').text(this.username).addClass('playerName').data('player', self);
$('#username').text("Username: " + this.username);
$('#lvl').text("Level: " + this.lvl);
$('#exp').text("Experience: " + this.exp);
$('#expNeeded').text("Experience Needed: " + this.expNeeded);
$('#gold').text("Gold: " + this.gold);
$('#hp').text("HP: " + this.fullLife);
$('#attack').text("Attack: " + this.atk);
$('#defense').text("Defense: " + this.def);
$('#speed').text("Speed: " + this.spd);
$('#nextLevel').text("Next Level: " + this.nextLevel);
};
this.implement();
以便将播放器序列化为JSON对象,然后将其设置为本地存储。
然后,该代码将下移到if
语句的true块中,对该
的引用将被newPlayer
对象实例替换
看这把小提琴:
可能重复的请澄清您的具体问题。有什么意外吗?这是什么?当我切换页面时,它仍然会断开。我需要存储变量,并且能够在另一个页面上调用,有没有其他方法可以做到这一点?您需要解释“中断”的含义。我的小提琴显示了在localStorage中设置的对象,因此您只需要使用
var player=JSON.parse(localStorage.getItem(“player”)代码>在下一页。在主页上的promp上点击ok后,如果我在这之后进入battle页面,我很抱歉没有提供详细信息,但我从未使用过JSON或localStorage,我真的不知道您需要知道什么来解决它。问题可能与在localStorage中存储JSON无关。@Shniper无论您遇到什么问题与正确存储的实际数据无关。如果您查看我提供的屏幕截图,您不仅可以看到网页上的数据,还可以看到存储在localStorage中的对象以及该数据。问题很可能是,既然数据已经以某种方式存储,那么您获取数据的代码就不正确了。请把那个密码寄出去。
this.implement = function() {
$('#user').text(this.username).addClass('playerName').data('player', self);
$('#username').text("Username: " + this.username);
$('#lvl').text("Level: " + this.lvl);
$('#exp').text("Experience: " + this.exp);
$('#expNeeded').text("Experience Needed: " + this.expNeeded);
$('#gold').text("Gold: " + this.gold);
$('#hp').text("HP: " + this.fullLife);
$('#attack').text("Attack: " + this.atk);
$('#defense').text("Defense: " + this.def);
$('#speed').text("Speed: " + this.spd);
$('#nextLevel').text("Next Level: " + this.nextLevel);
};
this.implement();
//global function
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObject = function(key) {
var value = this.getItem(key);
return value && JSON.parse(value);
}
//page 1 code
//your data
var arrayObj = [{
name: 'user4',
userid: '1111',
msg: 'hello world!'
}, {
name: 'user2',
userid: '2222',
msg: 'hello universe!'
}];
localStorage.setObject('userInfo', arrayObj);
// page 1 code ends here
// page 2 code
if (window.localStorage) {
var $val = localStorage.getObject('userInfo', arrayObj);
}
// returns $val = [{name: 'user4',userid: '1111',msg: 'hello world!'}, {name: 'user2',userid: '2222',msg: 'hello universe!'}];