本文共 1038 字,大约阅读时间需要 3 分钟。
微软刚刚发布了正式版 Internet Explorer 9,又马不停蹄的开始开发 IE10,最近发布了 。该版本除了具备 之外,还包含了新的 :
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
与变化较大的 相比,IE10 的字符串目前只有两处修改:
与IE8和ie9相同,IE10 的“兼容性视图”仍然以IE7的标准来处理。在兼容性视图中,User Agent 与 IE7 类似,但是 “Trident” 的值会是“6.0” ,以便识别出实际上使用的是 IE10:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0)
很少人会受此影响,除非你 方法。
如果你的网站仍然在使用方法,那么“MSIE”的值更新为 “10.0”是一个值得注意的问题。为什么? 因为10比9要多出一位数。大多数网站可能不会受到影响,但是某些网站可能不能正常处理多出来的一位数,例如将 IE10 识别为 IE1。
下面的例子是一个正则表达式,使用它就会错误的提取MSIE的值的第一位:
// INCORRECT: will report IE10 version in capture 1 as "1" var matchIE = /MSIE\s(\d)/;
下面这个表达式才能正确检测到“MSIE”的值:
// Correct: will report IE10 version in capture 1 as "10.0" var matchIE = /MSIE\s([\d.]+)/
当然,如果使用不同的编程语言,表达式的写法是不一样的。如果在 Apache 服务器上使用自定义的 HTTPS 配置,推荐阅读 .
来测试你的网站对 IE10 新的 user-agent 字符串的兼容情况在需要的情况下更新 user-agent 探查逻辑,或者考虑迁移到上面提到的 feature detection 方法,避免在以后再遇到同样的升级 User Agent 的问题。
本文转自wbpluto 51CTO博客,原文链接:http://blog.51cto.com/wbpluto/612080,如需转载请自行联系原作者