检查是否可以使用纯Javascript来支持IE8

4

我过去是这样检查它的:

$.browser.msie && $.browser.version == 8

但是似乎后期版本的jQuery中已经删除了$.browser

那么,

我如何只使用纯JavaScript来检查呢?

我尝试了:

isIE8: navigator.appVersion.indexOf("MSIE 8") > 0

这个方法似乎可以,但并不好看,而且实际上有很多缺陷……

有更好的方法吗?


1
https://dev59.com/gm035IYBdhLWcg3wMM4G - damian
1
你为什么认为它看起来不好,并且存在缺陷? - putvande
https://dev59.com/D2gu5IYBdhLWcg3w8Lev#10965091 - Ionică Bizău
6
如果是针对IE8,您需要了解哪些具体内容?最安全的方法是使用特性检测而不是浏览器检测,这样您可以检查您需要的特定功能/函数是否存在,并在它们不存在时使用解决方法。 - Anthony Grist
3
“实际上看起来有很多缺陷” — 这个总结了浏览器检测。 - Quentin
显示剩余4条评论
2个回答

3

2
您可以检查是否支持SVG标签。在IE8中不支持SVG标签 -> http://caniuse.com/#search=svg 相反,DATA标签是在IE8中引入的 -> http://caniuse.com/#search=data 因此:
if (navigator.userAgent.toLowerCase().indexOf('msie') != -1) {
   if (!document.createElement('SVG').getAttributeNS) {
       if (document.createElement('DATA').getAttributeNS) {
           //the browser is defently IE8
        }
    }
}

1
如果您想检查 <= IE8,请省略 if(document.createElement('DATA').getAttributeNS ... - Stefan Steiger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接