使用jQuery将状态保存到Cookie

时间:2013-11-26 17:03:55

标签: jquery css cookies fonts

我目前在按钮上附加了以下jQuery:

<script type="text/javascript">
jQuery('#opendyslexic-toggler').click(function() {
var $styleSheet = jQuery('#opendyslexic');

 $styleSheet.prop('disabled') ?  $styleSheet.prop('disabled', false)  
                              : $styleSheet.prop('disabled', true);
});
</script>

此脚本的作用是通过启用样式表来更改网站上的字体。我希望当用户点击按钮时将此信息保存到cookie中(即,如果用户单击按钮一次,我希望字体更改[当前发生] 具有选择保存到cookie,因此它会在站点的各个部分和会话之间持续存在,并且在第二次单击时,我希望删除cookie或更改值,以便用户决定使用默认字体同样保留,等等)。

我尝试了六种不同的方法,但到目前为止,还没有成功地将cookie保存并正确读取,以便字体选择按预期保持不变。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我建议使用localStorage,并使用 MDN 的垫片回退到Cookie,它几乎是跨浏览器:

jQuery(function($) {
    if ( localStorage.getItem('font') ) {
        $('#opendyslexic').prop('disabled', localStorage.getItem('font') == 'true');
    }

    $('#opendyslexic-toggler').on('click', function() {
         $('#opendyslexic').prop('disabled', function(_, prop) {
              localStorage.setItem('font', !prop);
              return !prop;
         });
    });
});