JQuery UI вкладки не обновляются в IE - PullRequest
4 голосов
/ 07 июля 2011

Здравствуйте, у меня есть страница с некоторыми вкладками jquery ui, и они отлично работают в chrome и firefox, но в IE (тестирование 9) содержимое всегда остается тем же, когда пользователь выполняет действие, и страница перезагружает содержимое.так же.Может ли это быть потому, что я использую куки, чтобы запомнить, на какой вкладке был пользователь

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

Ответы [ 3 ]

2 голосов
/ 23 сентября 2011

Я боролся с подобной проблемой, вкладки JQuery прекрасно работают со всеми браузерами, кроме MSIE. Проблема оказалась в том, что MSIE кэшировал все запросы страниц, даже при нажатии кнопки перезагрузки, и я решил это на стороне сервера с параметром заголовка EXPIRES.

Я использую Perl и модуль CGI, и я добавил параметр expires для всех страниц и запросов AJAX:

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

Надеюсь, это кому-нибудь поможет!

2 голосов
/ 21 июля 2011

Вы пытались установить параметры ajaxoptions?

$(document).ready(function(){
  $("#tabs").tabs({
    spinner: 'Loading...',
    cache: false,
    ajaxOptions: {cache: false}
  });
});
1 голос
/ 12 декабря 2012

Я согласен, что ответ Дасти должен быть правильным. Однако в моем случае это не сработало в 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

...