查看IE11的userAgent, 已经没有了MSIE
的影子, 而是类似这样的字串:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
这会导致之前检测ie版本的一些代码失效, 如下面的示例代码:
var rIE = new RegExp("MSIE (\\d+\\.\\d+);");
rIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
不得不说, ie真是一朵奇葩.
不过ie11变的不止这个, 还有好多都是在向标准靠拢, 也删除了一些旧的功能. 如:
attachEvent -> addEventListener
window.execScript -> eval
...
个人觉得, 还是做特性检测比较好.
至于版本, 除非某些版本有特定的bug需要兼容,
不然不要去做版本检测, 否则遇上像ie11这种升级, 又要改代码…
参考:
https://liulanmi.com/news/5546.html
欢迎补充指正!