Internet Explorer 11: “请不要再叫我 IE”
来源:互联网 发布:阿里云客服报名关闭 编辑:程序博客网 时间:2024/04/28 21:49
微软在上周刚刚发布了用于 Windows 8.1 上的首个 Internet Explorer 11 的预览版,此举是为了回应之前泄漏关于 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 的关键字:
Internet Explorer 11 的 user-agent:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
Internet Explorer 10 的 user-agent (on Windows 7):
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
上述 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 的代码实际上还是可以工作。[3]
另外一个要废弃的是 attachEvent() 方法,该方法用于添加事件处理器,对应的 detachEvent() 用来移除事件处理器。这两个方法将在 Internet Explorer 11 中删除。移除这两个方法需要改用如下逻辑:
function addEvent(element, type, handler) { if (element.attachEvent) { element.attachEvent("on" + type, handler); } else if (element.addEventListener) { element.addEventListener(type, handler, false); }}
当然,建议你优先使用标准的浏览器进行测试以确保不会因为 attachEvent() 的移除而影响代码执行。不过互联网上充斥着各种糟糕的监测代码,你只能确保自己的应用经过良好的标准测试。
所有这些被废弃的方法都有基于标准的替代方法。如果你使用的是标准的方法那恭喜你,可直接支持 Internet Explorer 11.
相关链接
- Internet Explorer 的详细介绍:请点这里
- Internet Explorer 的下载地址:请点这里
文章转载自:开源中国社区 [http://www.oschina.net]
- Internet Explorer 11: “请不要再叫我 IE”
- Internet Explorer 11: “请不要再叫我 IE”
- Internet Explorer 11: “请不要再叫我 IE”
- IE 11:请不要再叫我IE
- IE11浏览器:请不要再叫我IE,谢谢
- 请不要叫我大师兄,我没那么老
- Internet Explorer 11
- Internet Explorer(IE)的安全漏洞
- IE: 如何卸载 Internet Explorer 7
- filter IE滤镜(Internet Explorer)CSS
- filter IE滤镜(Internet Explorer)CSS
- 请不要叫我小编,我是神圣的内容产品经理
- 累了,请不要叫出来
- Internet Explorer 11 的变化
- Internet Explorer
- Internet Explorer
- Internet Explorer 7+ ,微软的vista IE 浏览器
- div+css - 工具 - Internet Explorer Developer Toolbar - IE开发工具栏
- ios sqlite 锁表
- WordPress插件开发详细教程
- gromacs安装流程
- 行列转换
- Ubuntu装机必备命令
- Internet Explorer 11: “请不要再叫我 IE”
- linux ( ubuntu) 重启网络
- 浅析C# get set的简单用法
- JSTL包重复报错java.lang.NoSuchFieldError: deferredExpression
- Android上HDMI介绍(基于高通平台)
- php:netbeans+wampserver2.2e实现xdebug调试
- 黑马程序员---java基础加强_成员变量的反射
- PHP概率算法(适用于抽奖、随机广告)
- sql refine实例