记住背景颜色/颜色与Cookie

时间:2012-12-23 13:24:33

标签: javascript cookies background-color color-picker

我一直在寻找互联网,似乎找不到与我的需求相关的文章。 我之前从未使用过cookie,但我认为这可能是一项简单的任务...... 事实证明我错了:/

基本上我有一个颜色选择器,我希望浏览器每次设置时都能记住颜色集,这样当它们返回到站点时,背景颜色与它们离开时的颜色相同。

我正在使用此颜色选择器http://lindekleiv.bitbucket.org/colorpicker/

使用此代码

$(document).ready(function(){
    $('#colorpicker').colorPicker({
    colorChange: function(e, ui) {
    $('body').css({backgroundColor: ui.color})
    }
    });

    $('#colorpicker').colorPicker('setColor', 0, 0, 6, 1);
})

提前感谢您的帮助:) 克里斯

2 个答案:

答案 0 :(得分:2)

您可以使用我写的这个非常简单的cookie处理对象:

var Cookie = {
    set: function(name, value, days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        } else { var expires = ""; }

        document.cookie = name + "=" + value + expires + "; path=" + location.pathname;
    },

    unset: function(name) { Cookie.set(name, "", -1); },

    get: function(name) {
        var search = new RegExp(name + "=([^;]*);");
        var result = search.exec(document.cookie);
        return result ? result[1] : undefined;
    }
};

所以你的代码会变成:

$(document).ready(function(){
    $('#colorpicker').colorPicker({
        colorChange: function(e, ui) {
            $('body').css({backgroundColor: ui.color});
            Cookie.set('bgc', $('body').css('background-color'), 365);
        }
    });

    $('#colorpicker').colorPicker('setColor', 0, 0, 6, 1);

    if (Cookie.get('bgc')) {
        $('body').css({ backgroundColor: Cookie.get('bgc') });
    }
});

答案 1 :(得分:0)

实际上非常简单。您可以使用以下方法设置背景颜色的cookie:

document.cookie = "color=" + color;

回想一下用这个保存的cookie:

var color = loadCookies();

function loadCookies(){
    var cookie_string = document.cookie ;
    if (cookie_string.length != 0) {
        var cookie_value = cookie_string.match (
                    '(^|;)[\s]*' +
                    "color" +
                    '=([^;]*)' );
        return decodeURIComponent ( cookie_value[2] ) ;
    }
}