使用 javascript 在电脑上存储本地变量

store a var local on a pc with javascript

我正在尝试将本地玩家的高分存储在他的电脑上。我不知道这是否可能,而且我在这个网站上没有找到关于它的问题。我只有一个包含数字的变量。我想将它存储在他的电脑上,所以当玩家在他的浏览器中再次玩游戏时,他的高分仍然可用。

使用本地存储:

window.localStorage.score="20"  // storing

window.localStorage.score  // getting the score again.

这有点奇怪,除非我们谈论的是 nodeJS (?) 存储到文件系统或其他本地存储。

如果您想保留某个值以便下次加载时将从 javascript 上的存储位置获取该值,您必须使用 cookie 来完成, 但每次您清除 cookie 时,它​​都会被清除,并且不会在您机器上的多个浏览器之间共享。

话虽如此,这就是您使用 javascript:

将值存储到 cookie 的方式

document.cookie="somekey=savedValue";

var readValue = document.cookie;

旧浏览器不支持

localStorage。所以使用 cookie 作为后备。

if(window.localStorage)
    window.localStorage.setItem("highscore",1000);
else
   document.cookie="highscore=1000; expires=Thu, 31 Dec 2018 12:00:00 UTC";

检索值

function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.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 "";
}  
if(window.localStorage)
   var highscore=window.localStorage.getItem("highscore");
else
  var highscore=getCookie("highscore");

除了localStorage,您还可以使用Cookies。

var expDate=new Date();
var score=20;
expDate.setDate(expDate.getDate()+365); // expiration after one year

// Setting cookie
document.cookie='score='+score+';expires='+expDate;

// Retrieving the cookie
var yourOldScore = document.cookie.match(/score=(.*?)\;/)[1];