您好,欢迎访问一九零五行业门户网

IE11浏览器:请不要再叫我IE,谢谢_html/css_WEB-ITnose

这篇对自已挺有用的,特mark一下,纯转载。
转载自:nczonline
微软在上周刚刚发布了用于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并没有真正被删除,但不推荐使用。
其它类似信息

推荐信息