前端开发工程师:不是IE的IE11

标签: IE相关 IE11 前端 | 发表时间:2014-05-08 23:20 | 作者:iefans
出处:http://www.iefans.net

IE11浏览器自去年六月份发布以来虽然据说也取得了不错的成绩,但是根据百度流量研究院的浏览器数据显示,国内好像还看不到其占有率,但全球范围内 IE11的占有率已经超过IE10和IE9的总和。获取IE11可以从两种方式:安装 Win8.1 里面内置IE11;从Win 7的 IE9/10 升级,但XP在中国仍然有超过 60%的占有率,而XP最高也只能升级到IE8。

前端测试仍在徘徊在IE6 ~ IE10之间,但在开发过程中偶然间发现了IE11与众IE不同之处。

前端开发一直将浏览器分为 W3C 和 IE 两种,特别是将 IE 众版本当做异类对待。微软这次决定洗心革面,将 IE11 打造成一款不是“IE”的浏览器,拥有与其它“W3C”浏览器一样的特性。

重要变动

IE11 支持了完整的 flex 能力(参见 利用flexbox构建可伸缩布局),于 Firefox 之后第二个拥有无前缀 CSS 属性名。

支持了 SPDY 协议。

ActiveXObject 对象不再存在了,这使得许多依靠检测该对象来嗅探浏览器类型的代码失效。

同样,document.all 的布尔值也会返回 false 。许多浏览器拥有该对象但是在转成布尔值时故意返回 false 用以兼容之前无数使用该对象判断浏览器类型的代码。现在,只有 IE6~IE9 会返回 true。

UA中一直存在的 MSIE 被删除,依赖于此获取浏览器类型和版本号的代码将失效。要判断其类型和版本,必须MSIE 和 Trident 共用了。

溢出了 attachEvent ,以 addEventListener 取代之,这也会破坏使用该方法判断浏览器类型的代码。

IE8 引入的 XDomainRequest 被删除,取而代之的是支持跨域资源共享( CORS)的 XMLHttpRequest。

总结

显然 IE11 的改进破坏了几乎所有用于区分 W3C 和 IE 浏览器的方法,使得无数现存代码无法取得其是 IE 浏览器的事实。或许这就是微软的目的:IE11 不再是“IE”了,你不需要在判断出来它了。

下面给出使用 UA 获取 IE 版本的代码:

/**
 * Get version if it's a microsoft internet explorer.
 *
 * @return version code,or else null if it's not a IE.
 */
function getIEVersion(){
    var ua = navigator.userAgent,matches,tridentMap={'4':8,'5':9,'6':10,'7':11};
 
    matches = ua.match(/MSIE (\d+)/i);
 
    if(matches&&matches[1])
    {   
        //find by msie
        return +matches[1];
    }
 
    matches = ua.match(/Trident\/(\d+)/i);
    if(matches&&matches[1])
    {   
        //find by trident
        return tridentMap[matches[1]]||null;
    }
 
    //we did what we could
    return null;
}

由于 UA 可以随意伪造,所以并没有合适的方法能够保证检测出真正的浏览器环境,因此代码都不应依赖于具体的环境和版本。

This article addresses: http://www.iefans.net/qianduan-kaifa-bushi-ie11/

By the time your rss reader get this post here is 1 comments ,Welcome you come to leave your opinion !

相关 [前端 开发 工程师] 推荐:

支付宝、腾讯前端开发工程师谈实战HTML5

- - 脚本爱好者
如今大热的 HTML5 到底美在哪里. HTML5到底能为实际的移动开发带来哪些改变. 来自支付宝和腾讯的前端开发工程师们有他们自己的看法.   上周,在一场名为“技术风云会”的定期讨论活动中,HTML5小组杭州联盟的同学、阿里巴巴集团 HTML5 爱好者,以及支付宝浙大校友会的会员集中讨论了 HTML5 对前端开发带来的直接改变.

前端开发工程师:不是IE的IE11

- - IE浏览器中文网站
IE11浏览器自去年六月份发布以来虽然据说也取得了不错的成绩,但是根据百度流量研究院的浏览器数据显示,国内好像还看不到其占有率,但全球范围内 IE11的占有率已经超过IE10和IE9的总和. 获取IE11可以从两种方式:安装 Win8.1 里面内置IE11;从Win 7的 IE9/10 升级,但XP在中国仍然有超过 60%的占有率,而XP最高也只能升级到IE8.

Web前端开发工程师必读的15个设计博客

- abcd - 博客园-首页原创精华区
  Web设计是一个不断变化的领域,因此掌握最新的发展趋势及技术动向对设计师来说非常重要,无论是学习新技术,还是寻找免费资源与工具,设计博客都是很不错的去处. 本文向大家推荐15个非常不错的设计博客. Smashing Magazine创建于2006年,是最好的设计博客之一,有很多Web设计和开发方面的高质量文章,内容涉及HTML5、CSS、JavaScript、Photoshop、Wordpress、壁纸和网站可用性.

前端工程师必备:细数那些好用的网站开发工具

- - 博客 - 伯乐在线
Web用户体验师Jake Rocheleau撰写了一篇文章分享他在Web开发中经常使用的网站和Web App,其中包含各类字体库、代码库、插件库、配色方案和测试工具. 他同时指出,Web开发环境将慢慢转向云端. CodeVisually是一个开源项目. 在它的分类目录下有各种插件、 模板、 主题和脚本程序,你可以找到很多有用的 JS 库,也为WordPress开发人员提供了框架和模板.

前端开发工程师如何在2013年里提升自己

- - 博客 - 伯乐在线
英文原文: Talks To Help You Become A Better Front-End Engineer In 2013,编译: w3ctech-吴天豪(@小豪_步天 ). 大部分人非常在意个人在技术上的提升. 但是保持对新技术的了解是一项不小的挑战, 毕竟我们需要的信息在数量上过于庞大.

那些帮助你成为优秀前端工程师的讲座——《移动开发篇》

- - 博客园_梦想天空
  这篇文章是前端优秀讲座和讨论列表系列连载第四篇,向大家分享宝贵的移动开发经验. 前端领域发展迅速,只有时刻掌握前端发展趋势和技术动态,学习前沿的开发思想和理念才能让自己跟上时代的步伐,保持自己的技术优势. 《构建支持触摸的交互界面》. Stephen Woods 向大家分享创建响应式的 HTML5 触摸交互界面经验.

前端工程师技能汇总

- - 博客园_新闻
还记得@jayli 的这幅前端知识结构图么. 缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个 github 项目. 我们可以通过协作的方式来共同维护这个项目. Git 的历史记录也可以见证前端行业的一些变迁. 尽管会变成文字的方式来维护这些内容,但是我承诺写一个小工具帮大家生成更好玩的图形(基于 DataV 项目).

【xxx】前端技能汇总(Jackson Tian) 前端工程师们,珍重!

- - 王跸西的生命体验blog-WangBiXi.com
Frontend Knowledge Structure 项目起源. 还记得@jayli 的这幅前端知识结构图么. 缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个github项目. 我们可以通过协作的方式来共同维护这个项目. Git的历史记录也可以见证前端行业的一些变迁.

前端工程师的编码遭遇战

- Zacky - Taobao UED Team
导语:由于历史原因,淘宝网的页面编码一直都是gbk,F2E手册中也有明确规范,刚开始的一段时间,F2E们并未遭遇太麻烦的乱码问题,大家相安无事,但随着淘宝的合作方越来越多,合作方的API接口编码可谓五花八门,淘宝的系统和第三方的数据对接之后就暴露出各式各样的乱码问题. 我想,可能是在做第一个淘宝网的页面时,工程师只顾写代码,而忘了看一看编辑器的默认编码设置,再后来就将错就错直到今天,如果稍微留神,可能就不会犯下这么一个低级错误.