Internet Explorer 11变更

Internet Explorer 11变更和javascript识别资料整理;
1、IE11增加了Gecko的标识,而Safari是首个标注了Gecko的浏览器。
2、IE11居然连window.ActiveXObject都不支持了。
3、之前多数使用MSIE来判断是否IE浏览器的代码都无法工作,可以改用Trident字符串来判断,Trident标识是在IE9中引入的,或者根据下面的特性来区分是否IE11浏览器。
  • 兼容 (“兼容”) 和浏览器 (“MSIE”) 令牌已删除。
  • “like Gecko” 令牌已添加(以便与其他浏览器一致)。
  • 浏览器版本现在由新版本 (“rv”) 令牌报告。

4、微软还更改了navigator对象:

• navigator.appName值为“Netscape”

• navigator.product值为“Gecko”

在HTML5中要求这两个属性必须返回上述对应的值,这是一个很奇怪的规定的,更奇怪的是Internet Explorer 11遵守了这个规定。

此举导致一些根据navigator对象判断浏览器型号的JavaScript代码会将Internet Explorer 11识别成基于Gecko的浏览器。

5、document.all 在Internet Explorer 11中被废弃:

document.all在IE中举足轻重。比起document.getElementById()来说,document.all是IE方式的获取元素的引用的方法。尽管IE 5增加对DOM的支持,但document.all一直沿用至IE 10。意味着在Internet Explorer 11中使用document.all的方法将可能导致执行失败,尽管使用了document.all的代码实际上还是可以工作。tips:document.all并没有真正被删除,但不推荐使用。

6、attachEvent()、detachEvent()方法在Internet Explorer 11中被废弃;

7、被删除的特性还包括:

  • window.execScript() – IE 版本的 eval()
  • window.doScroll() – IE 用来滚动窗口的方式
  • script.onreadystatechange – IE 方式的脚本加载完成的事件通知
  • script.readyState – IE 方式的测试脚本是否加载完成的状态
  • document.selection – IE 方式获取当前选择的文本
  • document.createStyleSheet – IE 方式创建样式单
  • style.styleSheet – IE 方式引用样式

8、微软官方提供的兼容性API调整:

删除 API 功能 替代功能
attachEvent addEventListener
window.execScript eval
window.doScroll window.scrollLeftwindow.scrollTop
document.all document.getElementById
document.fileSizeimg.fileSize 使用 XMLHttpRequest 可提取源
script.onreadystatechange 和 script.readyState script.onload
document.selection window.getSelection
document.createStyleSheet document.createElement(“style”)
style.styleSheet style.sheet
window.createPopup 使用 div 或 iframezIndex 值很高)
二进制行为 变化;使用基于标准的等效,如 canvasSVG 或 CSS3 动画
传统数据绑定 使用框架提供的数据绑定,如 WinJS

参考文献:Internet Explorer 11 开发人员指南

 

正在搜索资料稍后整理更新……

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据