Javascript - 设置Cookie不起作用

时间:2014-08-02 13:07:40

标签: javascript html json function cookies

我有设置cookie的功能:

function setCookie(cname, cvalue, exdays){
    var d = new Date();
    d.setTime(d.getTime() + (1000*60*60*24*exdays));
    var expires = "expires="+d.toGMTString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
    alert(cvalue);
}

我想要保存存储在cookie中名为cvalue的变量中的Json数据。我的问题是,当cvalue等于:

时,我可以设置一个cookie
18&&6&&6&&150&&1&&1406983971763&&1406984554440&&false&&542&&true&&false&&{"killEnemies":[{"type":"normal","amount":1,"regard":2,"done":true},{"type":"normal","amount":5,"regard":10,"done":true},{"type":"normal","amount":10,"regard":20,"done":false},{"type":"normal","amount":50,"regard":100,"done":false},{"type":"normal","amount":100,"regard":120,"done":false},{"type":"normal","amount":200,"regard":250,"done":false},{"type":"normal","amount":500,"regard":300,"done":false},{"type":"normal","amount":1000,"regard":400,"done":false},{"type":"normal","amount":2000,"regard":1000,"done":false},{"type":"normal","amount":3000,"regard":1500,"done":false},{"type":"normal","amount":5000,"regard":2000,"done":false},{"type":"normal","amount":10000,"regard":5000,"done":false},{"type":"normal","amount":15000,"regard":5000,"done":false},{"type":"normal","amount":20000,"regard":5000,"done":false},{"type":"normal","amount":30000,"regard":10000,"done":false},{"type":"normal","amount":40000,"regard":10000,"done":false},{"type":"normal","amount":50000,"regard":10000,"done":false}],"upgrades":[{"type":"player","level":1,"regard":15,"name":"jacto","done":false},{"type":"player","level":2,"regard":25,"name":"jacto","done":false},{"type":"gunRecharge","level":1,"regard":15,"name":"pistola","done":false},{"type":"gunRecharge","level":2,"regard":25,"name":"pistola","done":false},{"type":"player","level":3,"regard":40,"name":"jacto","done":false},{"type":"player","level":4,"regard":55,"name":"jacto","done":false},{"type":"gunRecharge","level":3,"regard":35,"name":"pistola","done":false},{"type":"gunRecharge","level":7,"regard":300,"name":"pistola","done":false},{"type":"player","level":7,"regard":450,"name":"jacto","done":false},{"type":"gunRecharge","level":10,"regard":600,"name":"pistola","done":false},{"type":"player","level":10,"regard":750,"name":"jacto","done":false},{"type":"gunRecharge","level":15,"regard":1000,"name":"pistola","done":false}]}&&{"width":32,"height":32,"x":868,"y":403,"speed":5,"level":0,"active":true}&&{"active":true,"xVelocity":0,"yVelocity":-30,"interval":500,"level":0,"numShoots":1,"numShootsLevel":0,"width":10,"height":10,"sizeLevel":0}&&<p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:52:51 - O jogo iniciou.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:52:53 - O jogo foi gravado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:4 - O jogo foi carregado</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:5 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:6 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:6 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:7 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:17 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:15 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:15 - Atingiste o nível 1</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:19 - Concluiste uma missão, mataste um total de 1 enimigos e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">2</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:30 - Concluiste uma missão, mataste um total de 5 enimigos e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">10</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:32 - O jogo foi gravado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:2:29 - O jogo foi carregado</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:2:35 - O jogo foi gravado.</p>&&1406984555052&&

但是当cvalue等于:

23&&6&&6&&150&&2&&1406983971763&&1406984702953&&false&&686&&true&&false&&{"killEnemies":[{"type":"normal","amount":1,"regard":2,"done":true},{"type":"normal","amount":5,"regard":10,"done":true},{"type":"normal","amount":10,"regard":20,"done":false},{"type":"normal","amount":50,"regard":100,"done":false},{"type":"normal","amount":100,"regard":120,"done":false},{"type":"normal","amount":200,"regard":250,"done":false},{"type":"normal","amount":500,"regard":300,"done":false},{"type":"normal","amount":1000,"regard":400,"done":false},{"type":"normal","amount":2000,"regard":1000,"done":false},{"type":"normal","amount":3000,"regard":1500,"done":false},{"type":"normal","amount":5000,"regard":2000,"done":false},{"type":"normal","amount":10000,"regard":5000,"done":false},{"type":"normal","amount":15000,"regard":5000,"done":false},{"type":"normal","amount":20000,"regard":5000,"done":false},{"type":"normal","amount":30000,"regard":10000,"done":false},{"type":"normal","amount":40000,"regard":10000,"done":false},{"type":"normal","amount":50000,"regard":10000,"done":false}],"upgrades":[{"type":"player","level":1,"regard":15,"name":"jacto","done":false},{"type":"player","level":2,"regard":25,"name":"jacto","done":false},{"type":"gunRecharge","level":1,"regard":15,"name":"pistola","done":true},{"type":"gunRecharge","level":2,"regard":25,"name":"pistola","done":false},{"type":"player","level":3,"regard":40,"name":"jacto","done":false},{"type":"player","level":4,"regard":55,"name":"jacto","done":false},{"type":"gunRecharge","level":3,"regard":35,"name":"pistola","done":false},{"type":"gunRecharge","level":7,"regard":300,"name":"pistola","done":false},{"type":"player","level":7,"regard":450,"name":"jacto","done":false},{"type":"gunRecharge","level":10,"regard":600,"name":"pistola","done":false},{"type":"player","level":10,"regard":750,"name":"jacto","done":false},{"type":"gunRecharge","level":15,"regard":1000,"name":"pistola","done":false}]}&&{"width":32,"height":32,"x":559,"y":398,"speed":5,"level":0,"active":true}&&{"active":true,"xVelocity":0,"yVelocity":-30,"interval":450,"level":1,"numShoots":1,"numShootsLevel":0,"width":10,"height":10,"sizeLevel":0}&&<p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:52:51 - O jogo iniciou.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:52:53 - O jogo foi gravado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:4 - O jogo foi carregado</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:5 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:6 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:6 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:7 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:17 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:15 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:15 - Atingiste o nível 1</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:19 - Concluiste uma missão, mataste um total de 1 enimigos e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">2</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:30 - Concluiste uma missão, mataste um total de 5 enimigos e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">10</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:32 - O jogo foi gravado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:53 - O jogo foi carregado</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:55 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:56 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:57 - Melhorou a pistola para nível 1</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:57 - Concluiste uma missão, evoluiste a pistola para nível 1 e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">15</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:5:5 - Atingiste o nível 2</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:5:5 - O jogo foi gravado.</p>&&1406984705723&&

未存储Cookie。有谁知道为什么?

谢谢,感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可能会遇到问题,因为Cookie字符串的总长度大于事实 ~4093字节 (每个域)< / em>通常被认为是跨浏览器上限

作为替代方案,您可能需要查看localStorage对象,因为它具有更高的容量 5-10 MB ,具体取决于浏览器)< / em>比使用cookies更简单 - ie

localStorage.setItem(name, value);
localStorage.getItem(name);
localStorage.removeItem(name);