`

IE11兼容问题

阅读更多

 

IE11下载地址:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=40901。安装IE10和IE11之前需要先保证操作系统是Service版本的。win7 sp1升级包下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=5842

  

搜集资料:

  IE11随Windows 8.1预览版一同到来,13年7月份,IE11登陆Windows 7,为该平台提供与Win8.1版IE11同样的性能完善、更快的页面加载速度、对更多新标准的支持、全新的F12开发者工具

  在保证兼容性、互操作性、安全性的基础上,IE11大大提升了JavaScript引擎Chakra的性能,还新增了对ECMAScript 6标准的支持,包括let、const、Map、Set、WeakMap、as __proto__ for。

  微软提供了IE11与其它几款浏览器的JavaScript性能基准测试,测试选用的是权威的WebKit SunSpider测试软件,平台为Windows 7。根据测试结果,IE11比IE10快4%,Chrome 28、Firefox 22、Opera 15更是被远远抛在身后

  本人亲测,IE11对javascript的执行速度用肉眼都能看出来,同样的页面,同样的代码,IE11执行速度很快,各大主流浏览器javascript的执行速度图,如下:

 

  我们已经确认Internet Explorer 11中的一些新特性,包括对WebGL的支持、预抓取、预渲染、flexbox、mutation observers以及其他一些Web标准的支持。但是更有趣的是,虽然被叫为Internet Explorer 11,但它已经不再是IE了,为什么这么说呢?如下道来。。。

  这也是首次微软真正移除了Internet Explorer的一些特性:更改了user-agent字符串,这使得很多判断浏览器是否IE的代码无法工作,包括有些JavaScript的isIE()的方法在Internet Explorer 11上执行会返回false。不过好在Internet Explorer 11对Web标准的支持非常好,因此不再需要之前那些IE特定的行为。navigator.userAgent字符串发生了本质性的变化,这就是为什么我们的平台不兼容IE11的原因了,计划赶不上变化,老的东西终将随着新事务的发展变化而改变自身来适应它们的变化。

  1、IE6-IE10的userAgent字符串如下:

  2、IE11的userAgent字符串如下:

  

  3、Firefox的userAgent字符串如下:(firefox已经是过去时了,这里为什么要拿firefox来对比呢,因为IE11长得有点像它了)

  

  IE11增加了Gecko的标识,而Safari是首个标注了Gecko的浏览器。哎,IE11居然连window.ActiveXObject都不支持了?还叫Internet Explorer浏览器吗?我和我的小伙伴们都吓一跳, 幸好新建的时候还能创建出对象。

  

  之前多数使用MSIE来判断是否IE浏览器的代码都无法工作,可以改用Trident字符串来判断。Trident标识是在IE9中引入的。

  此外微软还更改了navigator对象:

  • navigator.appName值为“Netscape”

  • navigator.product值为“Gecko”

  这或许是一项开发者的诡计,但该行为的确是在HTML5中实际指定的。在HTML5中要求这两个属性必须返回上述对应的值,这是一个很奇怪的规定的,更奇怪的是Internet Explorer 11遵守了这个规定。

  此举导致一些根据navigator对象判断浏览器型号的JavaScript代码会将Internet Explorer 11识别成基于Gecko的浏览器。

 

document.all和friends

  从IE 4开始,document.all在IE中举足轻重。比起document.getElementById()来说,document.all是IE方式的获取元素的引用的方法。尽管IE 5增加对DOM的支持,但document.all一直沿用至IE 10。而在Internet Explorer 11中终于被废弃了,这意味着在Internet Explorer 11中使用document.all的方法将可能导致执行失败,尽管使用了document.all的代码实际上还是可以工作。

  另外一个要废弃的是attachEvent()方法,该方法用于添加事件处理器,对应的detachEvent()用来移除事件处理器。这两个方法将在Internet Explorer 11中删除。移除这两个方法需要改用如下逻辑:

  当然,建议你优先使用标准的浏览器进行测试以确保不会因为attachEvent()的移除而影响代码执行。不过互联网上充斥着各种糟糕的监测代码,你只能确保自己的应用经过良好的标准测试。

被删除的特性还包括:

所有这些被废弃的方法都有基于标准的替代方法。如果你使用的是标准的方法那恭喜你,可直接支持Internet Explorer 11.

结论

  看起来Internet Explorer 11应该是Internet Explorer家族最棒的版本。通过最终移除过去一些魔鬼般的错误,微软正在为大家准备一个真正标准的浏览器。

更新:document.all并没有真正被删除,但不推荐使用。

 

出处: http://www.th7.cn/web/js/201311/15045.shtml

分享到:
评论

相关推荐

    Svg IE 11 兼容性问题README.md

    svg xlink:href不兼容问题解决,通过引入svg4everybody.js解决兼容,此款插件如何使用说明书

    IE6-IE11兼容性问题列表及解决办法

    本文将深入探讨IE6到IE11的兼容性问题及其解决策略,旨在帮助开发者更顺利地应对这些挑战。 首先,我们来关注IE6的一些典型问题。IE6对于CSS的支持非常有限,例如不支持浮动元素的`clear:both`属性,不理解`min-...

    一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

    在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案 百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html> ...

    ie11兼容es6语法资源包

    标题中的"ie11兼容es6语法资源包"就是为了解决一个长期存在的问题:如何在不支持新标准的老版本浏览器,如Internet Explorer 11(IE11),中运行使用ES6新特性的代码。 首先,我们来详细探讨一下ES6,也称为...

    ASP.NET与IE11兼容性解决方法

    然而,ASP.NET与IE11之间可能存在兼容性问题,特别是涉及到JavaScript功能时,如在描述中提到的“__doPostBack”未定义错误。 “__doPostBack”是ASP.NET中的一个关键JavaScript函数,主要用于处理页面回传事件。当...

    解决各种IE兼容问题_IE6_IE7_IE8_IE9_IE10

    总之,解决IE兼容问题的方法主要包括使用`X-UA-Compatible`标签指定渲染模式、利用服务器端配置以及引入JavaScript库。开发者可以根据项目需求选择适合的策略,以确保网站在不同版本的IE浏览器中都能正常工作。不过...

    JavaScript 导入 excel 兼容IE11

    在JavaScript中导入Excel文件,尤其是在兼容古老的Internet Explorer 11(IE11)浏览器时,需要考虑到这个浏览器并不支持现代的File API和其他先进的Web技术。本文将深入探讨如何实现这一功能,以及涉及到的关键知识...

    完美解决win 8.1 IE11兼容性问题的方法.docx

    ### 完美解决Win 8.1 IE11兼容性问题的方法 随着Windows 8.1 RTM版本的发布,用户们得以体验到这款操作系统带来的全新功能与改进。然而,在享受这些新特性的同时,不少用户也遇到了一些兼容性问题,尤其是在使用...

    解决IE6兼容问题的十一大技巧

    在网页开发中,IE6(Internet Explorer 6)的兼容性问题一直是开发者头疼的问题,因为它与现代浏览器在处理CSS、JavaScript和其他Web技术时存在诸多差异。本文将详细介绍如何解决IE6的兼容性问题,并提供一些实用的...

    IE6-IE11兼容性问题列表及解决办法.rar

    对于IE6到IE11这一系列的Internet Explorer浏览器,由于它们之间的差异以及与其他现代浏览器的不同,开发者经常遇到各种兼容性问题。本文件“IE6-IE11兼容性问题列表及解决办法.rar”正是针对这些难题提供解决方案的...

    完美解决kindeditor IE11看不到弹出框,兼容性问题

    在本文中,我们将深入探讨如何解决KindEditor在Internet Explorer 11(IE11)下遇到的弹出框显示问题,这是一个典型的浏览器兼容性问题。首先,我们需要了解问题的根源,然后逐步分析代码以找到解决方案。 ...

    IE11兼容性问题完美解决(用户代理字符串)

    本文将深入探讨如何解决IE11(Internet Explorer 11)在Windows 8/8.1系统下的兼容性问题,主要关注用户代理字符串(User Agent String, 简称UA字符串)的应用与调整。 首先,我们需要理解什么是用户代理字符串。...

    致WEB前端开发者:IE6-IE11兼容性问题列表及解决办法

    IE6-IE11 兼容性问题列表及解决办法 作为一名 WEB 前端开发者,了解 IE 浏览器的兼容性问题是非常重要的。在 IE6 到 IE11 的版本更新中,存在许多的变化和改进,这些变化可能会影响到我们编写的前端代码的兼容性。...

    ie firefox 兼容问题大全

    ### IE与Firefox兼容性问题详解 #### 一、概述 在网页开发过程中,浏览器兼容性问题一直是前端开发者面临的重要挑战之一。尤其是对于早期版本的Internet Explorer(简称IE)与Mozilla Firefox(简称Firefox)来说...

    IE6升级到IE9兼容性问题和操作手册

    【IE6升级到IE9兼容性问题和操作手册】 在互联网技术不断发展的今天,老旧的浏览器版本如IE6已经无法满足现代网页的需求。因此,升级到更现代的版本,如IE9,是必要的。然而,这个升级过程并非一帆风顺,会涉及到...

    IE6,IE7,IE8兼容性问题

    ### IE6, IE7, IE8 兼容性问题详解 #### 一、引言 在Web开发过程中,确保网站能够在各种不同的浏览器中正常显示是非常重要的。尤其是在早期的Web时代,Internet Explorer(简称IE)系列浏览器占据着重要的市场份额...

    ie的常见兼容问题

    ### IE的常见兼容问题 在Web开发过程中,针对不同浏览器的兼容性问题一直是开发者们需要面对的重要挑战之一。其中,Internet Explorer(简称IE)作为曾经市场占有率极高的浏览器,在其多个版本中存在诸多兼容性问题...

    IE6浏览器兼容问题总结及CSS排版注意地方

    IE6浏览器兼容问题总结及CSS排版注意地方 列举IE6中10个不得不注意的问题 重构你的代码

    如何解决IE兼容性问题

    ### 如何解决IE兼容性问题 在Web开发领域,确保网站在不同版本的Internet Explorer(以下简称IE)浏览器中能够正常显示是一项重要的工作。由于IE浏览器的版本差异导致了许多兼容性问题,这使得开发者不得不采取一...

    让Windows 11恢复IE 11:IE11_for_Win11.rar

    因此,微软强烈推荐使用Microsoft Edge,特别是其内置的IE模式,可以在不离开Edge浏览器的情况下,为需要IE兼容性的网页提供支持。IE模式利用了Edge的Chromium内核,同时保留了IE11的渲染引擎,使得现代浏览器能够...

Global site tag (gtag.js) - Google Analytics