0

我正在使用 jQuery Tabs 插件和“历史”插件,以允许添加书签和使用浏览器后退按钮。一切都很好 - 除了在 IE 6 和 7 中。当您加载页面时,IE 会跳到锚点。

这是示例实现:http ://coolkidz.com/sell-consign/

有什么想法可以让 IE 表现得很好吗?

4

1 回答 1

1

在 IE 6/7 中启用历史记录工具时,它会向页面添加一个隐藏的 iframe,并最初将 iframe 设置location.hash'#'. 发生这种情况时,IE 会滚动到页面底部的 iframe(即使它是隐藏的)。

由于无法编辑 jQuery Tools 源代码,我可以想到两种解决方法:

  1. 在初始化 jQuery 工具选项卡(演示)之前添加此 JavaScript :

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

    初始化历史记录工具后,它会滚动到页面顶部。这种解决方法的缺点是,如果窗口不在页面顶部,IE 会停留在正确的位置,但这会迫使它滚动到顶部。

  2. 添加这个 CSS(演示):

    iframe {
        position: absolute;
    }​
    

    IE 不会尝试滚动到position: absoluteiframe。此解决方法的缺点是这会影响您页面上的任何其他 iframe。

我建议使用解决方法#1。

于 2012-06-26T07:31:44.820 回答