2012-05-20 3 views
0

Я использую плагин jQuery Tabs вместе с плагином «История», чтобы разрешить закладок и использовать кнопку браузера. Все работает отлично - за исключением IE 6 и 7. Когда вы загружаете страницу, IE переходит к якорям.jQuery Инструменты Вкладки + История - Предотвращение прыжков в IE 6 и 7

Вот пример реализации: http://coolkidz.com/sell-consign/

Любые идеи, чтобы получить IE, чтобы вести себя хорошо?

+1

Вы не заметили, что IE дал вашу ошибку js? Строка 41, char 6 –

+0

также, строка 1, char 1 в jquery.tools.min.js. Я думаю, вы должны исправить эту ошибку сначала –

+0

за то, что она стоит, ваша страница также выглядит сломанной в Firefox 3.6 (и да, есть люди, которые ее используют, несмотря на все усилия Mozilla) – Spudley

ответ

1

Когда инструмент «История» включен в IE 6/7, он добавляет скрытый iframe на страницу и изначально устанавливает location.hash iframe в '#'. Когда это произойдет, IE прокручивается в iframe (хотя он и скрыт), который находится внизу страницы.

Не будучи в состоянии изменить инструменты источник JQuery, я могу думать о двух обходных:

  1. Добавить JavaScript, прежде чем инициализировать Jquery Tools Tabs (demo):

    if ($.browser.msie && $.browser.version < '8') { 
        $(window).one("hash", function(e, h) { 
         if (h === '#') { 
          $(window).scrollTop(0); 
         } 
        }); 
    } 
    

    This свитки в верхней части страницы после инициализации инструмента «История». Нижняя сторона этого обходного пути заключается в том, что если окно не было в верхней части страницы, IE остался бы в правильном положении, но это заставляет его прокручивать вверх.

  2. Добавьте этот CSS (demo):

    iframe { 
        position: absolute; 
    }​ 
    

    IE не пытается, чтобы перейти к position: absolute фрейма. Нижняя сторона этого обходного пути заключается в том, что это влияет на любые другие iframe на вашей странице.

Предлагаю перейти к обходному пути № 1.

+0

Благодарим за быстрый ответ! Я проверю его и отчитаю! –

+0

То, что JS fix действительно кажется, что он должен работать - это вызывает некоторые прыжки вокруг, хотя. Я выбрал исправление iframe, хотя это блестящее мышление. Я пошел вперед и нацелил iframe внутри .inner div и оставил цель специально для IE7 и IE6. Это прекрасно работает! –

+0

Я говорил слишком скоро .. IE обманывал меня. Я был освежающим, чтобы проверить, и, учитывая, что я уже прокручивался наверху, он, похоже, работал. Лучший способ проверить - щелкнуть ссылки из http://coolkidz.com/about, а затем следовать за ними. # 1 «работает», но эффект прыжка и обновление экрана, который происходит на стороне конечного пользователя, не собирается его сокращать. Я буду проверять дальше. –

 Смежные вопросы

  • Нет связанных вопросов^_^