我正在使用 jQuery Tabs 插件和“历史”插件,以允许添加书签和使用浏览器后退按钮。一切都很好 - 除了在 IE 6 和 7 中。当您加载页面时,IE 会跳到锚点。
这是示例实现:http ://coolkidz.com/sell-consign/
有什么想法可以让 IE 表现得很好吗?
我正在使用 jQuery Tabs 插件和“历史”插件,以允许添加书签和使用浏览器后退按钮。一切都很好 - 除了在 IE 6 和 7 中。当您加载页面时,IE 会跳到锚点。
这是示例实现:http ://coolkidz.com/sell-consign/
有什么想法可以让 IE 表现得很好吗?
在 IE 6/7 中启用历史记录工具时,它会向页面添加一个隐藏的 iframe,并最初将 iframe 设置location.hash
为'#'
. 发生这种情况时,IE 会滚动到页面底部的 iframe(即使它是隐藏的)。
由于无法编辑 jQuery Tools 源代码,我可以想到两种解决方法:
在初始化 jQuery 工具选项卡(演示)之前添加此 JavaScript :
if ($.browser.msie && $.browser.version < '8') {
$(window).one("hash", function(e, h) {
if (h === '#') {
$(window).scrollTop(0);
}
});
}
初始化历史记录工具后,它会滚动到页面顶部。这种解决方法的缺点是,如果窗口不在页面顶部,IE 会停留在正确的位置,但这会迫使它滚动到顶部。
添加这个 CSS(演示):
iframe {
position: absolute;
}
IE 不会尝试滚动到position: absolute
iframe。此解决方法的缺点是这会影响您页面上的任何其他 iframe。
我建议使用解决方法#1。