2013-05-06 99 views
3

現狀:刷新頁面與#hash

網址:http://mydomain.com/test.html#somehash

測試腳本:

$(document).ready(function() { 
    console.log("page initiated"); 
    if (window.location.hash) { 
     console.log("hash changed (if-statement)"); 
    } 

    $(window).on("hashchange", function() { 
     console.log("hash changed (on statement)"); 
    }); 

}); 

腳本也可以在fiddle被發現,但環境不適合顯示行爲。

我得到的問題是當我點擊瀏覽器的地址欄並按回車沒有任何改變。

  1. 當瀏覽器url有一個hashtag,頁面不會被重新啓動。 document.ready不會被解僱,我也沒有收到任何控制檯消息。

  2. 當瀏覽器url沒有哈希標籤時,頁面會重新啓動,並且會觸發document.ready

有沒有人有這種行爲的解釋,它可以被捕獲,以便在情況1頁面重新加載? 有沒有文件的地方,因爲我似乎無法找到任何?

+3

這是所需的行爲。如果您的URL包含哈希字符串,則不應啓動整頁刷新。 – meagar 2013-05-06 17:30:56

+0

我有點觸目驚心。這是記錄在某處嗎?是否有特定的理由將其作爲期望的行爲?當我點擊瀏覽器菜單上的「刷新」按鈕時,我有一個正常的刷新。 – Daniel 2013-05-06 17:38:50

+1

向URL添加散列表示您意味着在頁面內導航,而不是導航到新頁面。點擊「刷新」按鈕表示您想要重新請求文檔。按下URL欄上的Enter並點擊刷新是非常不同的事情。 – meagar 2013-05-06 17:40:48

回答

2

這是所需的行爲。如果您的URL包含哈希字符串,則不應啓動整頁刷新。

將散列添加到URL中表示您的意思是在頁面內導航,而不是導航到新頁面。點擊「刷新」按鈕表示您想要重新請求文檔。按下URL欄上的Enter並點擊刷新是非常不同的事情。

+0

謝謝@meager ;-) – Daniel 2014-03-05 04:29:23