2012-04-21 65 views
4

是否可以自動將example.com/4000/title-2/#!4000 url更改爲example.com/4000/title-2而無需刷新頁面?基本上從URL中刪除「/#!4000」。 請注意,在hashbang之前刪除「/」不僅僅是hashbang很重要。通過javascript更改URL鏈接而不刷新

+0

自動或以編程方式? – 2012-04-21 17:37:17

+0

你想改變..?鏈接元素的'href',或'window.location'?我建議,如果你想改變瀏覽器的地址欄中的URL,你看看URL重寫,以及你在服務器上運行的任何東西(Apache?)。 – 2012-04-21 17:38:48

回答

7

不知道如果這是足以讓你和它運作是否完全跨瀏覽器...鉻接受:

location.hash = ""; 

但保持「#」在地址欄中

現代

完全支持HTML5歷史API的瀏覽器你:

window.history.replaceState('Object', 'Title', '/4000/title-2'); 

編輯:此模具不會改變瀏覽器的歷史

編輯2:剛發現this stackoverflow resource

+0

我們需要刪除#和之前的「/」。 – themihai 2012-04-21 17:40:09

+0

@mihai沒有頁面刷新是不可能的。 – sg3s 2012-04-21 17:44:26

+0

[sg3s](http://stackoverflow.com/users/893918/sg3s)html5使其成爲可能 – 2012-04-21 17:45:07