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

时间:2016-04-20 18:23:49

标签: javascript cookies

我的问题可能很简单,但我不知道如何做到这一点。我想保存' bgid'整个浏览会话和页面重新加载。我想过使用cookies,但我不知道如何暗示它们。这是我的代码(顺便说一下,我正在使用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>;
你能帮助我吗?谢谢! :)

4 个答案:

答案 0 :(得分:2)

使用local storage

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

答案 1 :(得分:1)

您可以将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;

答案 2 :(得分:0)

我建议您使用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>

答案 3 :(得分:0)

如果我是你,我不会使用cookies,而是大多数浏览器实施 localstorage

egxample:

<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>;

这对你有用,但上面的答案应该足够了