更新浏览器地址栏而不重新加载

时间:2012-12-17 18:24:56

标签: javascript internet-explorer url

我喜欢facebook在图像之间滚动时更改浏览器地址栏的URL的方式,以及它在IE7上的工作方式。但是,我只是在HTML5浏览器上找到了有关如何操作的信息,我想支持IE7。

由于这是一个HTML5解决方案,所以:

window.history.pushState("object or string", "Title", "/new-url");
如果有另一种解决方案,

不是一种选择。

编辑

在任何哈希之前。

但是有吗?

1 个答案:

答案 0 :(得分:5)

我知道的唯一其他选项涉及使用#hash片段来确定使用hashchange事件的页面的“url”或“状态”,这在IE7中是不受支持的:

http://caniuse.com/#search=hashchange

然而,有polyfill:

http://benalman.com/projects/jquery-hashchange-plugin/

这是一个相当hacky的方法,它打破了HTTP协议,因为它依赖在javascript上输出正确的内容,但你可能不在乎:

http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

History.js声称跨浏览器支持,虽然我没有使用它(使用HTML5浏览器的历史记录,旧版本的hashchange):

https://github.com/browserstate/History.js/