在几个浏览会话中保存javascript变量

Save javascript variable throughout several browsing sessions?

本文关键字:会话 保存 javascript 变量 浏览 几个      更新时间:2023-09-26

我的问题可能很简单,但我只是不知道如何做到这一点。我想在几个浏览会话和页面重新加载期间保存"bgid"。我想过使用cookie,但我不知道如何暗示它们。这是我的代码(顺便说一句,我使用的是jQuery):

<script> 
    var bgid = 2;
    var bgnumber = 3;
    $('#changebg').click(function() {
        $('body').removeClass();
        $('body').addClass('class' + bgid);
        if(bgid < bgnumber + 1) {
            bgid = bgid + 1; 
        } else {
            bgid = 2; 
        }
    });
</script>;

你们能帮我吗?谢谢!:)

使用本地存储:

var bgid = !localStorage.getItem('bgid')? 2 : parseInt(localStorage.getItem('bgid'));
bgid += 1;
localStorage.setItem('bgid', bgid);

您可以为此目的使用localStorage。只需做一些类似的事情

var bgid = window.localStorage.bgid; 

您唯一需要记住的是,您检索的数据将是一个字符串。

示例:

if (window.localStorage.bgid !=== undefined) // check whether the data already exists 
   window.localStorage.bgid = 2; // if not, we set the 2 as default value

然后您可以使用window.localStorage.bgid访问bgid。如果您想获得一个数字,请使用parseInt或在窗口前添加"+"。

如果你想保存数据,只需键入

window.localStorage.bgid = newValue;

我建议您使用localStorage

<script>
    if (localStorage.getItem("bgid"))
    {
        var bgid = parseInt(localStorage.getItem("bgid"));
    }
    else
    {
        var bgid = 2;
    }
    var bgnumber = 3;
    $('#changebg').click(function () {
        $('body').removeClass();
        $('body').addClass('class' + bgid);
        if (bgid < bgnumber + 1)
        {
            bgid = bgid + 1;
        }
        else
        {
            bgid = 2;
        }
        localStorage.setItem("bgid", bgid);
    });
</script>

如果我是你,我不会使用cookie,但大多数浏览器都实现本地存储

例如:

<script> 
var bgid = 2;
if(localStorage.getItem("bgid") != null){// this checks bgid exists
    bgid = localStorage.getItem("bgid");//and this sets bgid to the localstorage value
}
var bgnumber = 3;
$('#changebg').click(function() {
$('body').removeClass();
$('body').addClass('class' + bgid);
if(bgid < bgnumber + 1){
    bgid = bgid + 1; 
}
else{
    bgid = 2; 
}
localStorage.setItem("bgid");// this sets the value 
});
</script>;

这应该对您有效,但以上答案应该足够