在web项目进行浏览器兼容性测试,论坑最多的,非IE系列浏览器莫属,且IE8是我们组开发的心中的痛,一提到有兼容性bug,第一反应:是不是IE的?卧槽,又是IE8!
由于项目产品需要,管理后台和官网等web项目都需要兼容到IE浏览器,兼容到IE8以上并且是含IE8,所以每次有新功能尤其关注的就是IE系列浏览器。一般情况下其他主流浏览器都问题不大,而IE浏览器不同版本也有差异,曾经就掉过坑,以为IE8测完一遍后,其他9,10,11问题应该不会很大,可以放心点,时间上评估少点,结果后来发现每个IE浏览器版本发现的bug都不一样,出现的地方都不一样,让人非常忧伤。虽然尝试用浏览器兼容性工具辅助如IEtester,但效果并不高。为了以后能更好地在IE浏览器进行测试,所以网上看了相关资料,了解IE不同版本的兼容性测试点,将IE浏览器不同版本的兼容性问题进行了整理。
IE浏览器自从IE9开始后,做了很大的改动,更符合了W3C标准,这也是为啥IE8比其他问题要更多的原因了。其中IE11已更完善,像IE11中就内置了IE7-IE10的浏览器模式(按F12打开开发者工具可见),方便开发进行更低版本的调试。如下整理IE9-IE11的变更点:
1、IE9
IE9 的 User-agent 字符串更改
验证 JavaScript. 框架是否支持最新版本
空格保存和 DOM
当 Window 对象属性处于孤立状态时将被删除
XSLT 兼容性更改
不再支持 Arguments.caller
数组索引处理
二进制行为和 XML 架构
二进制行为不再自动绑定
内容属性和 DOM 属性
CreateElement 不再支持尖括号
动态 VML 模式更改
枚举 JavaScript. 属性
泰语和东亚文字的字体大小
函数指针方法调用
从 DOM 删除 IFrame. 资源后,可释放这些资源
调用的间接 eval 函数的作用域现在为全局
不再支持传统 DOM 事件
数学精确度和 SSE2 差异
MIME 类型和纯文本内容
MIME 类型和样式表
本机 XML 对象类型和传统网站
NULL 协议返回值
对象元素回退适用于 DOM
克隆重叠元素
减少 MIME 类型的安全风险
圆角和传统版渐变筛选器
脚本元素和事件执行
样式表标题为只读
表对象模型一致性
文本布局和自然指标
2、IE10
HTML5 Quirks 模式
IE10 user-agent 字符串
不再支持 DX 筛选器
不再支持元素行为和 HTC
ASP.NET 无法检测
面向 Web 开发人员的浏览
不再支持条件注释
自定义下载体验
使用 JavaScript 处理夏令时
插件和 ActiveX 在 Windows 8 和 Windows 8.1 中受支持
拼写检查和自动更正支持
不再支持 VML
不再支持 XML 数据岛
3、IE11
Web 开发人员可获取 W3C DOM4 突变观察者的支持,从而帮助监视需要观察和跟踪哪些 DOM 突变
已弃用文档模式
Internet 区域不再支持 CSS 表达式
复选框和单选按钮布局默认值
跨浏览器插件检测
默认字体更改
默认情况下启用增强保护模式 (EPM)
弹性框(“Flexbox”)布局更新
突变观察者
指针事件更新
伪装点击测试在 IE11 边缘模式中已禁用
边缘模式不再支持 VBScript
Window 事件行为已发生更改
以上是对不同版本的变更做个整理,对于Web开发的前端来说,了解不同版本的变化尤其重要,而对于我们Web测试来说,如果也能多去了解根源的变化,相信也能有更好地帮助,虽然我也只是在浏览器兼容性测试摸索中,还没有找到最佳实践。如下附上部分曾经遇到的bug记录,以提醒自己IE浏览器这个坑深着呢,哈哈!
原文转自:http://qa.blog.163.com/blog/static/1901470022016111693828431/