Internet Explorer支持pushState和replaceState吗?
Internet Explorer 10引入了对HTML5草案规范的History接口的支持,该接口包括了一些方法,可以用于管理网站的历史记录和URL。
在这个规范中,有两个方法是pushState和replaceState。pushState方法允许将新的状态添加到历史记录堆栈中,而replaceState方法允许修改当前的历史记录状态。这两个方法对于创建无刷新页面导航和动态URL非常有用。
然而,Internet Explorer 10并没有原生支持pushState和replaceState方法。这可能会导致在使用这些方法时出现兼容性问题。
为了解决这个问题,可以使用一些JavaScript库或框架来实现对pushState和replaceState的支持。其中一个常用的库是History.js,它提供了一个统一的API,可以在不同浏览器中实现对HTML5 History API的支持。
下面是一个使用History.js来实现pushState和replaceState的示例代码:
// 导入History.js库 <script src="https://cdnjs.cloudflare.com/ajax/libs/history.js/1.8/bundled/html4+html5/jquery.history.min.js"></script> // 创建一个新的状态 var newState = {state: "newState"}; // 使用pushState方法将新状态添加到历史记录堆栈中 History.pushState(newState, "New State", "/new-state"); // 使用replaceState方法修改当前的历史记录状态 History.replaceState(newState, "Modified State", "/modified-state");
通过使用History.js库,我们可以在Internet Explorer 10中实现对pushState和replaceState方法的支持,从而解决了兼容性问题。这样,我们就能够在IE10中创建无刷新页面导航和动态URL了。
Internet Explorer浏览器不支持pushState和replaceState方法。
但是可以使用一个Polyfill解决方法来实现这个功能 - History.js https://github.com/browserstate/history.js。
Modernizr在这里https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills列出了一些很好的HTML5 Polyfills。
不过需要注意的是,在只支持HTML 4功能的浏览器中,这个Polyfill会在URL中添加查询字符串。
根据上述问题的评论,popstate在IE10中不会触发。
如果必须支持IE 9或更低版本,则History.js是一个很好的解决方案,但是它的大小是23KB,压缩后的。这对于仅仅支持几个方法来说有点大。
Internet Explorer是否支持pushState和replaceState?
这个问题的出现的原因是因为Internet Explorer 9在发布的第一个发布候选版中就不支持pushState和replaceState方法。通常在产品进入RC阶段后不会再添加新功能,因此IE9最终不太可能支持这些方法。然而,IE9提供了其他一些功能,Microsoft在其开发人员概述中对这些功能进行了介绍。
Internet Explorer 9于2011年3月14日发布,确实不支持history.pushState()或history.replaceState()。
目前IE10的平台预览版仍然不支持pushState和replaceState方法。
然而,IE10的Platform Preview 3支持history API。
值得注意的是,截至目前,IE10的历史记录存在一个bug,导致popstate事件无法触发。详细信息可以在stackoverflow.com上找到。
Internet Explorer 9不支持pushState和replaceState方法,而IE10的Platform Preview 3开始支持history API。但是,目前IE10的历史记录存在问题,popstate事件无法正常触发。
以上是对于Internet Explorer是否支持pushState和replaceState方法的内容整理。