Javascript:如何在不刷新页面的情况下更改地址栏中的URL?

时间:2011-10-23 21:08:49

标签: javascript ajax web-applications

  

可能重复:
  How do I, with JavaScript, change the URL in the browser without loading the new page?

我注意到像GMail和GrooveShark这样的网络应用可以在不刷新页面的情况下更改浏览器地址栏中的URL。 Ajax显然用于更改内容。如何更改网址?

2 个答案:

答案 0 :(得分:10)

Gmail和Grooveshark只更改哈希,这可以通过更改:

来完成
location.hash = 'blah'

如果你定位支持HTML5的浏览器,你可以使用window.history.pushState和window.history.popState,参见http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page

答案 1 :(得分:5)

您可能希望了解HTML5推送状态。我知道iQuery Mobile正在使用此功能修改位置URL而不会触发页面加载,它可能是适合您的解决方案。

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

以下是其工作原理的示例:

window.history.pushState(data, "Title", "/new-url");