Javascript 使用HTML5保存对象
我很难让这个本地存储正常工作。这是一个使用javascript的小游戏。这是我尝试使用的保存和加载功能。 有更好的方法吗? 要调用保存和加载功能,我使用按钮Javascript 使用HTML5保存对象,javascript,save,storage,loading,Javascript,Save,Storage,Loading,我很难让这个本地存储正常工作。这是一个使用javascript的小游戏。这是我尝试使用的保存和加载功能。 有更好的方法吗? 要调用保存和加载功能,我使用按钮 编辑:我已编辑以包含完整代码 var雪球=0.0; 功能用户点击(编号){ 雪球=雪球+数量; document.getElementById(“雪球”).innerHTML=prettify(雪球); } 功能snowballClick(数字){ 雪球=雪球+(数字*0.1); document.getElementById(“雪球”)
编辑:我已编辑以包含完整代码
var雪球=0.0;
功能用户点击(编号){
雪球=雪球+数量;
document.getElementById(“雪球”).innerHTML=prettify(雪球);
}
功能snowballClick(数字){
雪球=雪球+(数字*0.1);
document.getElementById(“雪球”).innerHTML=prettify(雪球);
};
var企鹅=0.0;
var冰屋=0;
函数buyPenguin(){
var penguinCost=Math.floor(10*Math.pow(1.1,penguins));//计算出这个游标的成本
如果(雪球>=企鹅成本){//检查玩家是否能负担得起光标
企鹅=企鹅+1;//增加光标的数量
snowballs=snowballs-penguinCost;//删除花费的cookies
document.getElementById('penguins')。innerHTML=penguins;//更新用户的游标数
document.getElementById('snowballs')。innerHTML=snowballs;//更新用户的cookie数量
};
var nextCost=Math.floor(10*Math.pow(1.1,企鹅));//计算下一个游标的成本
document.getElementById('PenguingCost')。innerHTML=nextCost;//更新用户的游标成本
};
函数save(){
变量保存={
雪球:雪球,
企鹅:企鹅,
冰屋:冰屋,
声望:声望
}
setItem(“save”,JSON.stringify(save));
};
函数加载(){
var savegame=JSON.parse(localStorage.getItem(“save”);
如果(savegame.snowballs的类型!=“未定义”)snowballs=savegame.snowballs;
如果(savegame.penguins!=“未定义”)penguins=savegame.penguins;
如果(savegame.igloos的类型!=“未定义”)igloos=savegame.igloos;
document.getElementById('penguins')。innerHTML=penguins;
document.getElementById('snowballs')。innerHTML=snowballs;
document.getElementById('igloos')。innerHTML=igloos;
};
函数美化(输入){
var输出=数学四舍五入(输入*1000000)/1000000;
返回输出;
}
功能小屋(){
var iglooCost=Math.floor(10*Math.pow(3,igloos));//计算出这个游标的成本
如果(雪球>=iglooCost){//检查玩家是否能负担得起光标
冰屋=冰屋+1;//增加光标的数量
snowballs=snowballs-iglooCost;//删除花费的cookies
document.getElementById('penguins')。innerHTML=penguins;//更新用户的游标数
document.getElementById('snowballs')。innerHTML=snowballs;//更新用户的cookie数量
document.getElementById('igloos')。innerHTML=igloos;
};
var nextIglooCost=Math.floor(10*Math.pow(3,冰屋));//计算出下一个游标的成本
document.getElementById('iglooCost')。innerHTML=nextIglooCost;//更新用户的游标成本
};
函数devGive(){
雪球=雪球+100
document.getElementById(“雪球”).innerHTML=prettify(雪球);
}
setInterval(函数(){
雪球(企鹅);
用户点击(冰屋)
}, 1000);代码>
点击我!
雪球:0
买企鹅
企鹅:0
企鹅成本:10
拯救
负载
买冰屋
冰屋:0
冰屋费用:10
戴夫给100
我认为问题在于您没有定义prestige变量
var penguins = 0.0;
var igloos = 0;
var snowballs = 0.0;
var prestige = 'prestige'
function save(){
var save = {
snowballs: snowballs,
penguins: penguins,
igloos: igloos,
prestige: prestige
}
localStorage.setItem("save",JSON.stringify(save));
};
请查看此链接,它将起作用:您的代码是否正常工作?对象已成功保存和加载?您好,是的,除了保存和加载功能外,所有功能都正常工作。当我尝试调用save或load函数时,什么都没有发生。。。我不确定是什么问题,我已经按照上的说明进行了操作。谢谢你的建议。有什么错误吗?从你的代码中,我想说保存/加载应该可以工作。我打开了控制台,没有收到任何错误?这是我正在使用的按钮可能是问题所在?救命
加载
如果有助于确定问题的话,我已经编辑了完整的代码,非常感谢。好的,谢谢,我还在学习,所以我很感谢您的帮助:P我已经将您的html代码复制到我的html页面和js中,现在刷新时它似乎会自动加载,但值立即变为“nan”?有什么想法吗?我已经更新了我的anaswer,检查了它,并且再次检查了JSFIDLE链接。如果这解决了你的问题,一定要将它标记为答案。哦,上帝刚刚删除了prestige位,它与原始代码一起工作。。。愚蠢的我,我本来打算在下一步添加它,但当它不起作用时,我花了最后的人力资源调试,并试图使它保存。。。哈哈,谢谢!!或者你可以声明prestige变量,它也可以工作。不管怎样,我很高兴我帮了忙。