0

jQuery Tabs プラグインと「History」プラグインを使用して、ブックマークとブラウザの戻るボタンを使用できるようにしています。IE 6 と 7 を除いて、すべてがうまく機能します。ページをロードすると、IE はアンカーにジャンプします。

実装例は次のとおりです: http://coolkidz.com/sell-consign/

IE を適切に動作させるためのアイデアはありますか?

4

1 に答える 1

1

履歴ツールが IE 6/7 で有効になっている場合、非表示の iframe がページに追加され、最初に iframe が に設定location.hashされ'#'ます。これが発生すると、IE は (非表示であっても) ページの下部にある iframe までスクロールします。

jQuery ツールのソースを編集できないので、次の 2 つの回避策が考えられます。

  1. jQuery ツール タブ ( demo )を初期化する前に、次の JavaScript を追加します。

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

    これは、履歴ツールが初期化された後、ページの上部までスクロールします。この回避策の欠点は、ウィンドウがページの一番上にない場合、IE は正しい位置にとどまるはずですが、これにより強制的に一番上までスクロールされることです。

  2. この CSS を追加します ( demo ):

    iframe {
        position: absolute;
    }​
    

    position: absoluteIE はiframeにスクロールしようとしません。この回避策の欠点は、ページ上の他の iframe に影響することです。

回避策#1を使用することをお勧めします。

于 2012-06-26T07:31:44.820 に答える