当我尝试获取作为游戏货币的 Cookie“Gold”时,它返回 NaN。现在 cookie 被命名为“gold”并且值为 7238(对我来说显然是因为我将它保存为我的 comp 上的 cookie)
function getCookie(cname){
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i= 0; i < ca.length; i++){
var c = ca[i];
while(c.charAt(0) == ' '){
c = c.substring(1);
}
if(c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
var gold;
function getGold() {
if(getCookie("gold") == null) {
gold = 0;
} else {
var sup = getCookie("gold");
var co = parseInt(sup, 10);
gold += co;
}
}
getGold();
这个结果是 NaN 没有帮助,因为它没有说明我哪里出错了,我还可以提供我用来保存 cookie 的函数,如下所示:
function saveCookies(cname, value) {
var d = new Date();
d.setTime(d.getTime() + (365 * 24 * 60 * 60 *1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + value + ";" + expires + ";path=/";
}
然后当一些流氓点击“保存”按钮时,它执行的功能之一是
saveCookies("gold", gold")
除非您需要整个程序,否则我可以提供的所有信息到此结束,该程序可以位于 matrix-hub.com/CodeCoins.php
这个结果是 NaN 没有帮助,因为它没有说明我哪里出错了
首先,将此行更改saveCookies("gold", gold")
为saveCookies("gold",7238)
此处您的第一个参数是 cookie名称,即黄金,第二个参数是 cookie值,应为 7238而不是“黄金”
其次,当你设置var gold;
金币的价值是undefined
。所以在你的代码块中,当你去块时,else
因为getCookie("gold") == null
条件是false
,黄金的价值仍然是undefined
var gold;
function getGold() {
if(getCookie("gold") == null) {
gold = 0;
} else {
var sup = getCookie("gold");
var co = parseInt(sup, 10); //7238
// this is where you messed up, undefined = undefined + 7238
gold += co;
}
return gold; // also missed this return line
}
console.log(getGold()); // it is returning NaN
其实用这条线gold += co;
你想完成什么?如果您设置 cookie 值gold=7238那么这行gold += co;
应该返回14476
?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句