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