簡體   English   中英

當用戶向URL添加哈希時使瀏覽器重新加載

[英]Make the browser reload when user adds hash to to URL

因此,假設您有一個像這樣的網址:http: //yoursite.com/#stackoverflow

如果我在地址欄中輸入新的哈希,它將嘗試在頁面上找到該ID。 是否有amy方法(可能使用javascript?)來檢測瀏覽器的活動,然后強制頁面重新加載該URL?

謝謝!

您需要綁定到hashchange事件:

window.onhashchange = function() {
    window.location.reload();
};

不過請小心:某些較舊的瀏覽器不支持此事件( 請參閱參考資料),因此您需要為此使用一個polyfill。

這是一個示例以及針對較舊瀏覽器的輪詢技術:

if ('onhashchange' in window) {
    window.onhashchange = function() {
        window.location.reload();
    };
} else {
    var hash = window.location.hash;
    setInterval(function() {
       if (window.location.hash !== hash) {
           window.location.reload();
       }
    }, 100);
} 

在較新的瀏覽器上,您可以使用hashchange事件 實際上,對它的支持還不錯 在較舊的瀏覽器上,您必須輪詢location.hash (例如,使用setIntervalsetTimeout )。

值得一看

這個小插件提供了跨瀏覽器支持的抽象。

http://benalman.com/projects/jquery-hashchange-plugin/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM