Когда инструмент «История» включен в IE 6/7, он добавляет скрытый iframe на страницу и изначально устанавливает location.hash
iframe в '#'
. Когда это произойдет, IE прокручивается в iframe (хотя он и скрыт), который находится внизу страницы.
Не будучи в состоянии изменить инструменты источник JQuery, я могу думать о двух обходных:
Добавить JavaScript, прежде чем инициализировать Jquery Tools Tabs (demo):
if ($.browser.msie && $.browser.version < '8') {
$(window).one("hash", function(e, h) {
if (h === '#') {
$(window).scrollTop(0);
}
});
}
This свитки в верхней части страницы после инициализации инструмента «История». Нижняя сторона этого обходного пути заключается в том, что если окно не было в верхней части страницы, IE остался бы в правильном положении, но это заставляет его прокручивать вверх.
Добавьте этот CSS (demo):
iframe {
position: absolute;
}
IE не пытается, чтобы перейти к position: absolute
фрейма. Нижняя сторона этого обходного пути заключается в том, что это влияет на любые другие iframe на вашей странице.
Предлагаю перейти к обходному пути № 1.
Вы не заметили, что IE дал вашу ошибку js? Строка 41, char 6 –
также, строка 1, char 1 в jquery.tools.min.js. Я думаю, вы должны исправить эту ошибку сначала –
за то, что она стоит, ваша страница также выглядит сломанной в Firefox 3.6 (и да, есть люди, которые ее используют, несмотря на все усилия Mozilla) – Spudley