2011-03-21 91 views
3

嘿傢伙, 快速的問題,我找不到任何有用的東西在網上。javascript:徹底刪除top.location.hash?

如果我已經在我的地址欄中有散列,例如domain.com#什麼,我叫......

top.location.hash = "";

的#wathever轉化爲domain.com#沒有任何東西。

是否有可能完全刪除散列?所以沒有#左邊。

因爲如果我打電話給top.location.hash = "";,頁面會跳轉到頂端,因爲#會傳遞給url。我想阻止這一點。

+0

無需重新加載頁面?我會說沒有 – Guillaume86 2011-03-21 20:59:34

回答

2
top.location = '' 

應該這樣做,但它會導致頁面重新加載。我不認爲有任何方法可以通過程序刪除它。

+0

好吧,是否有可能只是將其設置爲「#」,但不要讓頁面跳轉到頂端?我不介意如果在網址中留有#號。我只是不希望我的網站跳到頂端。 – matt 2011-03-21 21:04:32

+0

http://stackoverflow.com/questions/2295845/remove-hash-without-page-jump應該回答你的問題。 – Johan 2011-03-21 21:34:42

0
window.location = window.location.href.replace(/#.*/, ""); 
+0

這將做到這一點,但我不認爲OP希望頁面重新加載。 – 2011-03-21 20:59:27

0

不幸的是,沒有辦法可靠地做到這一點,而不會導致頁面刷新,在這種情況下,您可以使用location.href屬性。

3

有可能與history.pushState,例如:

history.pushState({}, '', './'); 

當然這是IE < 10不相容的,但對我的作品:-)