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

Dan*_*iel 10 ajax jquery html5 browser-history pushstate

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

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

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

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

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

Arn*_*anc 22

现在的浏览器可以使用HTML5 History API:

history.pushState(null, null, '/some-path')
Run Code Online (Sandbox Code Playgroud)

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

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