Internet Explorer支持pushState和replaceState吗?

11 浏览
0 Comments

Internet Explorer支持pushState和replaceState吗?

有人知道Internet Explorer是否支持history.pushState()history.replaceState()方法来操纵浏览器历史记录吗?考虑到这些方法刚刚在Firefox 4中实现,我不抱太大希望,但有人知道它们是否会在IE9中出现吗?

0
0 Comments

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了。

0
0 Comments

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,压缩后的。这对于仅仅支持几个方法来说有点大。

0
0 Comments

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方法的内容整理。

0