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