有人知道 Internet Explorer 是否支持处理浏览器历史记录history.pushState()
的和history.replaceState()
方法吗?考虑到这些只是在 Firefox 4 中实现,我没有屏住呼吸,但是有人知道它们是否会在 IE9 中实现吗?
4 回答
浏览器兼容性信息的最佳站点可能是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! 细节
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。
Internet Explorer 10 引入了对 HTML5 草案规范的历史接口的支持,其中包括使您能够管理站点的历史堆栈和 URL 的方法。
原文链接:https ://msdn.microsoft.com/en-us/library/ie/hh920758(v=vs.85).aspx
顺便说一句,由于 pushState() 中的绝对路径,您可能会收到此类错误。当我设置相对路径错误消失了。