jQuery UI选项卡在IE中无法刷新

4

你好,我有一个页面上有一些jquery ui标签页,在谷歌浏览器和火狐浏览器中工作正常,但在IE(测试了9)中,当用户执行操作并重新加载页面时,内容始终保持不变。这可能是因为我使用cookie来记住用户所在的选项卡。

<script>
                    $(function() {
                        $( "#tabs" ).tabs({
                            cookie: {
                                expires: 1
                            },
                            ajaxOptions: {
                                error: function( xhr, status, index, anchor ) {
                                    $( anchor.hash ).html(
                                        "Couldn't load this tab. We'll try to fix this as soon as possible.");
                                }
                            }
                        });
                    });
                    </script>

你使用的jQuery版本是什么?jQuery v1.5及以下版本与IE9不兼容。此外,请发布更多的标记或jsfiddle以复制您的问题。 - Mrchief
最终我只是在每个选项卡的URL中添加了随机数字,似乎可以正常工作。 - BillPull
3个回答

2

你尝试过设置ajaxoptions吗?

$(document).ready(function(){
  $("#tabs").tabs({
    spinner: 'Loading...',
    cache: false,
    ajaxOptions: {cache: false}
  });
});

2

我一直在为类似的问题苦苦挣扎,JQuery选项卡在除了MSIE以外的所有浏览器中都能正常工作。问题在于MSIE缓存了所有页面请求,即使按下刷新按钮也是如此,我通过服务器端使用EXPIRES头参数解决了这个问题。

我使用Perl和CGI模块,并为所有页面和AJAX请求添加了expires参数:

print $q->header({-type=>'text/html', -expires=>'now'}), $HTML_CONTENT;

希望这能帮助到某些人!

1

我同意Dusty的答案应该是正确的。但在我的情况下,它在IE6中不起作用。相反,我使用了全局jquery ajaxSetup(由jquery ajax函数使用,由jqueryui选项卡使用),像这样关闭缓存:

$.ajaxSetup({
    cache: false
});

这对我来说非常有道理,因为我无法想象为什么我会希望浏览器缓存我特意尝试进行ajax的内容,但我意识到这是根据需求而定的。
我在我的主页面中完成了这个操作,以便所有页面都遵循这个规则。奇怪的是,缓存默认设置为true,但Firefox忽略了它。看起来这是IE做了它应该做的事情的唯一时候(即使这很烦人)。
参考资料:

http://docs.jquery.com/Ajax/jQuery.ajaxSetup

http://docs.jquery.com/Ajax/jQuery.ajax


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接