140

有人知道 Internet Explorer 是否支持处理浏览器历史记录history.pushState()的和history.replaceState()方法吗?考虑到这些只是在 Firefox 4 中实现,我没有屏住呼吸,但是有人知道它们是否会在 IE9 中实现吗?

4

4 回答 4

196

浏览器兼容性信息的最佳站点可能是CanIUse。这是关于历史的部分。

摘要 - IE9:否IE10:是(截至平台预览版 3)

IE9 的第一个候选版本(2011 年 2 月 10 日发布)不支持 history.pushState 或 history.replaceState。通常在产品进入 RC 阶段后不会添加新功能,因此最终的 IE9 不太可能支持这些方法。

Microsoft 对IE9 确实具有的功能的开发人员有一个很好的概述。

更新:Internet Explorer 9 已启动(2011 年 3 月 14 日)并且绝对不支持history.pushState()history.replaceState().

更新 2:IE10 的当前平台预览仍然不支持 pushState / replaceState

更新 3:IE10 的 Platform Preview 3支持历史 API! 细节

于 2011-02-11T11:30:26.130 回答
17

IE9 不支持。

但是,您可以使用 Polyfill 来获得功能 - History.js https://github.com/browserstate/history.js

Modernizr 很好地在此处列出了 HTML 5 Polyfills https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

需要注意的是,它会在仅支持 HTML 4 功能的浏览器中将查询字符串添加到您的 URL。

于 2011-07-05T14:44:00.723 回答
0

Internet Explorer 10 引入了对 HTML5 草案规范的历史接口的支持,其中包括使您能够管理站点的历史堆栈和 URL 的方法。

原文链接:https ://msdn.microsoft.com/en-us/library/ie/hh920758(v=vs.85).aspx

于 2015-03-08T02:37:49.613 回答
0

顺便说一句,由于 pushState() 中的绝对路径,您可能会收到此类错误。当我设置相对路径错误消失了。

于 2017-07-20T10:40:38.753 回答