我正在使用jQuery Tabs插件以及「歷史記錄」插件,以允許添加書籤和使用瀏覽器後退按鈕。一切都很好 - 除了在IE 6和7中。當你加載頁面時,IE跳轉到錨點。jQuery工具選項卡+歷史記錄 - 防止在IE 6和7中跳躍
這裏的示例實現:http://coolkidz.com/sell-consign/
任何想法,讓IE的行爲很好?
我正在使用jQuery Tabs插件以及「歷史記錄」插件,以允許添加書籤和使用瀏覽器後退按鈕。一切都很好 - 除了在IE 6和7中。當你加載頁面時,IE跳轉到錨點。jQuery工具選項卡+歷史記錄 - 防止在IE 6和7中跳躍
這裏的示例實現:http://coolkidz.com/sell-consign/
任何想法,讓IE的行爲很好?
當在IE 6/7中啓用歷史記錄工具時,它會向頁面添加一個隱藏的iframe,並最初將iframe的location.hash
設置爲'#'
。發生這種情況時,IE會滾動到頁面底部的iframe(即使它隱藏)。
而不能編輯jQuery的工具來源,我能想到的兩種解決方法的:
添加這個JavaScript初始化jQuery的工具選項卡之前(demo):
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一起去。
感謝您的快速響應!我會測試它並報告回來! –
這個JS修復看起來好像應該可以工作 - 但它引起了一些跳躍。不過,我選擇了iframe修復,這是一個非常出色的想法。我繼續前進,瞄準.inner div內的iframe,並專門針對IE7和IE6。它的作品非常漂亮! –
我說得太快了.. IE瀏覽器欺騙了我。我清爽的測試,鑑於我已經滾動到頂端,它似乎工作。最好的測試方法是點擊http://coolkidz.com/about中的鏈接,然後按照以上步驟進行操作。 #1是「工作」,但是在最終用戶方面發生的屏幕跳躍效果和刷新不會削減它。我會進一步測試。 –
你沒注意到IE給你的js錯誤?第41行,char 6 –
也是第1行,char 1在jquery.tools.min.js中。我認爲你應該首先修復這些錯誤 –
它的價值,你的頁面在Firefox 3.6中看起來也很糟糕(是的,儘管Mozilla的努力,仍然有人使用它) – Spudley