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

时间:2011-08-16 11:10:34

标签: jquery ajax html5 browser-history pushstate

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

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

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

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

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

2 个答案:

答案 0 :(得分:22)

在现代浏览器中,可以使用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)。

答案 1 :(得分:0)

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

以下是一篇文章:http://veerasundaravel.wordpress.com/2011/12/02/change-browser-url-with-reloading-the-page-jquery-html5/

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

相关问题