Internet Explorer 11: “不要叫我IE ”
对于第一次在很长一段时间,微软实际上已经删除的功能从Internet Explorer。用户代理字符串也发生了变化。看来,微软已经离开自己的方式,以确保isIE()所有现有的代码分支,无论是在JavaScript或服务器上的,将返回false为Internet Explorer 11。这种变化的乐观的看法是,IE浏览器11终于支持足够的网络标准,如不再需要现有的IE特定行为。
更改用户代理
为Internet Explorer 11的用户代理字符串是比以前的版本更短,有一些有趣的变化:
像壁虎Mozilla/5.0(Windows NT 6.3的RV 11.0 Trident/7.0)
与此相比,在Internet Explorer 10的用户代理字符串(在Windows 7):
Mozilla/5.0(兼容; MSIE 10.0;的Windows NT 6.1; WOW64 Trident/6.0)
最明显的区别是去除“MSIE”的道理,从一开始就一直在IE浏览器的用户代理。同样引人注目的是增加了“像壁虎”在年底。这表明宁可被认定为壁虎型浏览器是Internet Explorer,如果它不认定为本身。Safari是第一个浏览器,加上“像壁虎”嗅探“壁虎”的用户代理字符串,使任何人都将允许通过浏览器。
任何嗅探代码,看起来“MSIE”现在不会与新的用户代理字符串。您仍然可以搜索“三叉戟”,以确定它的IE浏览器(使用Internet Explorer 9推出的“三叉戟”令牌)。真正的Internet Explorer版本,现在都通过“RV”令牌。
此外,还有导航对象的变化,也掩盖正在使用的浏览器:
- 现在navigator.appName设置的“Netscape”
- 现在navigator.product设置为“壁虎”
这可能看起来像偷偷摸摸企图欺骗开发商,但这种行为实际上是指定在HTML5中[2]。的navigator.product属性必须是“壁虎”和navigator.appNameshould是“网景”或更具体的东西。奇怪的建议,但是Internet Explorer 11的跟随他们。
的副作用这些航海家变化是检测浏览器的JavaScript为基础的逻辑,最终可能会使用这些将最终确定的Internet Explorer 11作为一个基于Gecko的浏览器。
的document.all和朋友
由于IE浏览器4的document.all已经在Internet Explorer中的无所不在的力量。此前实施的document.getElementById()的document.all是“IE浏览器的方式”得到一个元素引用。尽管Internet Explorer 5中的DOM支持,一直保持在Internet Explorer中的document.all通过第10版。11,这一个过去时代的遗迹现在已经被falsy,即使这意味着任何代码分支的基础上存在的document.all将失败的Internet Explorer 11的代码,实际上usesdocument.all将工作[3]。
另一个缓缴的attachEvent()方法添加事件处理程序。该方法中,以及detachEvent(),现在已经被删除,从Internet Explorer 11中。卸下这些方法是一种手段,如短路逻辑:
函数的addEvent(元素,类型,处理程序){
如果(element.attachEvent){
element.attachEvent(“上”+类型,处理程序);
否则,如果(element.addEventListener){
(类型element.addEventListener,处理程序,假);
}
}
当然,它的建议,你总是基于标准的版本测试第一,在这种情况下的attachEvent()的去除,会产生不同的行为。然而,互联网充斥着坏的特征检测逻辑删除的attachEvent()确保任何以上述方式编写的代码将使用标准的IE特定的版本,而不是。
一些已被删除的其他功能:
- window.execScript() - IE的自己的版本的eval()
- window.doScroll() - IE浏览器的方式滚动窗口
- script.onreadystatechange - IE浏览器的方式,告诉听时加载脚本
- script.readyState - IE浏览器的方式来测试脚本的负载状态
- document.selection - IE浏览器的方式得到当前选定的文本
- document.createStyleSheet - IE浏览器的方式来创建一个样式表
- style.styleSheet - IE浏览器的方式,从样式对象引用一个样式表
所有这些都基于标准的当量应该用来代替旧的IE浏览器的做事方式。与去除等特点,去除这些手段,跨浏览器的代码,它基于标准的功能特征检测应继续努力,没有改变。
结论
它看起来像Internet Explorer 11的可能是最好的IE浏览器,但由一个长镜头。微软终于消除了过去的错误的证据,准备采取的地方,其中包括基于标准的浏览器今天。删除旧的功能和调整不被认定为IE浏览器的用户代理字符串是一个很独特的做法,以确保所有的网站,今天的工作,继续努力。如果Web应用程序使用功能检测,而不是浏览器嗅探,那么代码应该只是使用Internet Explorer 11。对于嗅探用户代理服务器,用户仍然应该得到一个功能齐全的网站,因为IE浏览器11的优秀标准的支持。转载请注明平台出租http://www.fuzhenxin.com

浙公网安备 33010602011771号