更新浏览器的URL而不重新加载页面

是否可以更改浏览器地址栏中显示的URL而无需浏览器转到该页面? 例如,在通过AJAX调用更新页面内容之后?

我的理解是这是不可能的,这就是为什么诸如twitter和facebook之类的网站更新了ajax调用的hash-tag。

直到今天,当我继续使用http://8tracks.com/并开始使用右侧的filter…打开和关闭不同类型时,我注意到即使它正在执行ajax调用刷新页面上的内容,URL也在动态更新。

有谁知道他们是怎么做到的?

(除此之外,我目前正在使用Chrome,但当我回过头来再次使用IE9时,我注意到该url未被更新..这可能只是Chrome的一部分吗?)

在现代浏览器中,可以使用HTML5 History API:

history.pushState(null, null, '/some-path') 

请参阅https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState%28%29.c2.a0method

这适用于Firefox,Chrome,Opera,Safari(不是IE)。

你也可以使用Jquery历史插件。 这也将支持html4浏览器。

这是一篇关于它的文章: http : //veerasundaravel.wordpress.com/2011/12/02/change-browser-url-with-reloading-the-page-jquery-html5/

这是另一个提供更多选项的问题: jQuery History Plugin