微软在上周刚刚发布了用于Windows 8.1上的首个Internet Explorer 11的预览版。我们已经确认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特定的行为。

在Internet Explorer 11中,user-agent比之前的版本要短很多,而且去掉了最关键的MSIE的关键字:

上述user-agent你还会注意到增加了Gecko的标识,而Safari是首个标注了Gecko的浏览器

之前多数使用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并没有真正被删除,但不推荐使用。

再关于IE11的更多相关文章

  1. IE11新特性 -- Internet Explorer 11:请不要再叫我IE

    Internet Explorer 11 中的一些新特性,包括对WebGL 的支持.预抓取.预渲染.flexbox.mutationobservers 以及其他一些 Web 标准的支持.但是更有趣的是 ...

  2. IE11-IE不再任性了-关于attachEvent

    今天解决了一个IE11的兼容问题,关于attachEvent的. 控件是ActiveX的,需要监听一个控件相关的事件.蓦然发现attachEvent在IE11不支持了...attachEvent不是I ...

  3. 三张照片解决--win10系统的edge浏览器设置为浏览器IE8,IE7,IE9---完美解决 费元星

      主要思想:         第二种方法:     参考文档: 1.可以在系统盘的C:\Program Files\Internet Explorer中找到iexplore.exe,然后将其发送到桌 ...

  4. win下IE设置

    当win7系统时需要升级IE为11版本,需要先安装sp1版本补丁,再装IE11,若还是装不了,可借助第三方平台(电脑管家等)升级安装.或 更新系统再安装IE11 https://jingyan.bai ...

  5. X-UA-Compatibles

    今天在看京东网页代码的时候,发现了X-UA-Compatibles 这个元信息属性,不是很清楚,百度了一下,做下记录 X-UA-Compatible 属性是 IE 浏览器在 IE8 版本开始提供的一个 ...

  6. IE11浏览器:请不要再叫我IE,谢谢

    这篇对自已挺有用的,特mark一下,纯转载. 转载自:nczonline 微软在上周刚刚发布了用于Windows 8.1上 的首个Internet Explorer 11的预览版.我们已经确认Inte ...

  7. IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题

    你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...

  8. 修复IE11首页被恶意篡改的问题

    前几天为了测试一个程序,把系统换成了Windows10,Windows10自带了微软的新浏览器Edge和IE11,用来其实也没什么太多感觉了,我习惯于Chrome,但有些东西还是得用IE,比如网银之类 ...

  9. 企业IT管理员IE11升级指南【17】—— F12 开发者工具

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

随机推荐

  1. ORA-02447: cannot defer a constraint that is not deferrable

    一个constraint如果被定义成deferrable那么这个constraints可以在deferred和imediate两种状态相互转换. deferred只在transaction中有效,也就 ...

  2. DOM不同的结点类型

    1)node类型 nodeName(what node) and nodeValue(always null) node父子之间可以用childNodes来表示 firstChild,childNod ...

  3. 在TCP协议下的数据传送

    本人小白菜逼一枚,,,,刚建立博客,也写不了太深入的,就写点上课的笔记什么的.有错误希望广大博友指出,我一定虚心学习接收改正. 我的新浪邮箱:liudaohui0805@sina.com 我的QQ邮箱 ...

  4. test在博客中嵌入实例代码

        // 其实很简单,只要把css.div.js代码直接写在里面就可以了.通过查看源代码就能看得很清楚了. 要注意的一点就是:如果div里没有任何内容,则它会被(博客网)删除掉,所以即使没有内容, ...

  5. struts2中<s:select/>标签的运用详解

    <s:select list="smsTypes" listKey="SmsTypeId" listValue="SmsTypeName&quo ...

  6. Js收藏-转

    /** * <P> Title: JavaScript Util </P> * <P> Description: JavaScript 工具 </P> ...

  7. python之6-2高阶函数

    1. map函数 map(函数A,字符串或者列表) map函数的意思是将函数A依次作用到字符串的每个字符或者列表的每个元素. 例如: map(lambda x: x*x,[1,2]) [1, 4] 这 ...

  8. SQL语句中的乘号

    在ADO中,我们需要在SQL语句中使用乘法运算,可是添加'*'以后执行程序总是会出错,这是因为‘*’与sql中的‘*’关键字重合了,所以编译会出错. 解决办法:将乘法运算放到sql语句外面,将结果放入 ...

  9. Asp.Net 控件radio 的简单使用

    js: <script type="text/javascript"> function ok() { document.getElementById("tx ...

  10. iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比

    iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比   iphoneiPhoneIPhoneIPHONEIphone数据持久化 对比总结 本篇对IOS中常用的5种数据持久化方法进行简单 ...