2011-04-26 81 views

回答

5

window.location.hash跟蹤頁面上當前的錨點位置。當您將其設置爲錨點時,該頁面將自動轉到該錨點。當你刪除它時,頁面將會變成頁面頂部的'空白'!

爲了解決這個問題做到以下幾點:

var scrollPosition = window.style.scrollTop; 
window.location.hash = ''; 
window.style.scrollTop = scrollPosition; 
+1

謝謝你的答案。順便說一下,如果您將代碼塊縮進四個空格,它將被格式化並更易於閱讀。 – mattalxndr 2011-04-26 18:17:22

+0

在Firefox中,我得到了「window.style未定義」。我決定放棄它,並使用jQuery的'$(window).scrollTop();'因爲我有權訪問它。 – mattalxndr 2011-04-26 18:27:33

+0

document.body.scrollTop或window.scrollTop可能更正確。 – GAgnew 2011-04-26 19:02:23

0

我遇到了這個行爲,當一個錯誤出現在代碼中,我寫了這是一個setInterval的看着哈希值。

setInterval(function(){ 
    var match = hash.match(/myValue=([^&]+)/); 
    window.location.hash = ''; 
    if (match && match.length == 2) { 
    $('#myDiv').val(match[1]); 
    // RUN CODE 
    } 
}, 250); 

在Chrome的代碼不會引起問題,但在Internet Explorer和Firefox它不會讓你滾動,因爲它總是試圖滾動到頁面的頂部。

無論如何,上述代碼無論如何都是「錯誤的」,因爲只有在找到匹配的情況下才會發生散列的清除。很遺憾,我在Firefox中檢查後才發現這個錯誤。