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

2023-12-29

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

由于这是一个 HTML5 解决方案,因此如下:

window.history.pushState("object or string", "Title", "/new-url");

如果有其他可用的解决方案,则不是一个选项。

EDIT

在任何哈希之前。

但有吗?


我知道的唯一其他选择涉及使用#hash片段使用以下方法确定页面的“url”或“状态”hashchangeIE7不支持的事件:

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

然而,有polyfills:

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

这是一种相当 hacky 的方法,它破坏了 HTTP 协议,因为它relies在 javascript 上输出正确的内容,但你可能不关心这一点:

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

History.js声称支持跨浏览器,尽管我没有使用过它(对于 HTML5 浏览器使用历史记录,对于旧浏览器使用 hashchange):

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新浏览器地址栏而不重新加载 的相关文章

随机推荐