1

我一直在寻找整个互联网,似乎找不到与我的需求相关的文章。我以前从未使用过 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);
})

在此先感谢您的帮助:) 克里斯

4

2 回答 2

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') });
    }
});
于 2012-12-23T13:41:08.773 回答
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] ) ;
    }
}
于 2012-12-23T14:05:38.830 回答