2011-07-07 76 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