更新浏览器的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