【问题标题】:Browser - Force reload deleting cookies?浏览器 - 强制重新加载删除 cookie?
【发布时间】:2013-07-27 04:01:46
【问题描述】:

我创建了一个带有选择输入的页面来更改正在使用的 jQuery UI 主题。当主题改变时,它被存储在一个 cookie 中。页面加载时,如果cookie存在则恢复主题,否则加载默认主题。

当我使用 F5 刷新页面时,我的代码确实可以工作,但如果我使用 ctrl + F5 强制完全重新加载,它不会。是我的代码有问题还是正常效果?

如果需要,这是我的代码:

(function($) {

    $(function() {

        var $themeSelect = $('#themeSelect');

        var initialTheme = $.cookie('theme');

        $themeSelect.on('change', function() {
            var dir = 'jQueryUI/css/' + $themeSelect.val();            
            $('#uiThemeA').attr('href', dir + '/jquery-ui.min.css');
            $('#uiThemeB').attr('href', dir + '/jquery.ui.theme.css');
            $.cookie('theme', $themeSelect.val());
        });

        if(initialTheme !== undefined) {
            $themeSelect.children().each(function(index, element) {
                var $element = $(element);
                if($element.attr('selected')) {
                    $element.removeAttr('selected');
                }
                if($element.attr('value') === initialTheme) {
                    $element.attr('selected');
                }
            }).trigger('change');
        } else {
            $.cookie('theme', $themeSelect.val());
        }

    });

})(jQuery);

感谢您的帮助!

【问题讨论】:

    标签: javascript jquery cookies browser refresh


    【解决方案1】:

    我发现了问题:

    我的代码有错误:

    if($element.attr('value') === initialTheme) {
        $element.attr('selected');
    }
    

    应该是:

    if($element.attr('value') === initialTheme) {
        $element.attr('selected', 'selected');
    }
    

    不,强制重新加载不会删除 cookie。

    【讨论】:

      猜你喜欢
      • 2012-11-04
      • 2015-01-05
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 2012-04-27
      • 1970-01-01
      • 2011-09-20
      相关资源
      最近更新 更多