【发布时间】:2016-04-03 01:04:47
【问题描述】:
嗨,在我的 javascript 游戏中,我使用 cookie 在游戏开始时加载一些数据
function loadData(){
cookieArray = document.cookie.split(';');
for (var i = 0; i < cookieArray.length; i++){
cookie = cookieArray[i].split('=')[0];
value = cookieArray[i].split('=')[1];
if (cookie=="currentR"){
round = value;
}
else if(cookie=="blueWins"){
bWins=value
}
else if(cookie == "redWins"){
rWins=value
}
}
}
当这个被调用时,for 循环工作正常,但 if 语句什么也没做? 我尝试在 cookie = cookieArray 行之后放置一个 console.log(cookie) 来测试正在找到哪些 cookie,它们都包括在内; currentR、blueWins 和 redWins。但我尝试在每个 if 语句中放置一个 console.log,但它没有记录任何内容,因为 if 语句永远不会变为真。为什么会这样,因为 cookie 在 for 循环的某个阶段确实等于 currentR (和其他 2 个)。控制台没有记录任何错误,所以我不知道。如果有帮助,我将包含保存数据然后重新加载页面的功能
function saveData(){
clearInterval(reloadG)
document.cookie = 'currentR=' + round
window.alert("Saved Data")
document.cookie = 'blueWins=' + bWins
document.cookie = 'redWins=' + rWins
location.reload(true)
}
我已经进行了一些测试,我很确定 saveData 功能可以正常工作。谢谢
【问题讨论】:
-
使用
===而不是== -
试试
document.cookie.split('; ')(添加空格)。 -
谢谢@Xufox!现在效果很好。你能解释一下空格在做什么吗?
-
@harrison 你只用分号作为分隔符来分割它。但实际的分隔符是分号和空格。你得到
" currentR"作为字符串,而不是预期的"currentR"。
标签: javascript if-statement for-loop cookies