2011-07-07 77 views
4

你好我有一个页面上有一些jquery ui选项卡,它们在Chrome和Firefox中工作正常,但在IE(测试9)中,当用户执行操作时内容始终保持不变页面重新加载的内容是一样的。 难道这是因为我使用cookies记住用户是在在IE浏览器中不刷新jquery ui选项卡

<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> 
+0

您正在使用什么版本的jQuery? jQuery v1.5及更低版本与IE9不兼容。此外,张贴更多的标记或jsfiddle来复制您的问题。 – Mrchief

+0

我结束了刚刚添加到每个选项卡的网址的随机数似乎工作正常 – BillPull

+1

:)缓存?哇! – Mrchief

回答

2

你试过设置ajaxoptions哪个选项?

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

我一直在努力解决类似的问题,JQuery选项卡在除MSIE之外的所有浏览器上都能正常工作。结果问题是MSIE缓存了所有的页面请求,即使按了重载按钮,我也用EXPIRES头参数解决了它的服务器端问题。

我用Perl和CGI模块,并且我加入了expires参数的所有页面和AJAX请求:

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