使用document.addEventListener使用JavaScript检测IE8

时间:2014-06-03 14:20:15

标签: javascript internet-explorer-8 conditional-operator browser-detection

我在我正在处理的项目中遇到了这个代码,用于检测浏览器是否为IE8:

var isIE8 = function(){ return (!document.addEventListener) ? true : false; };

我不明白为什么使用条件运算符? true : false如果为true则返回true,如果为false则返回false。逻辑NOT !应用于document.addEventListener的值,并且将始终返回布尔值,这不会完全相同:

var isIE8 = function(){ return (!document.addEventListener); };

.addEventListener Browser Compatibility

This Answer是我能找到的最接近的信息。

谢谢你看一下:)

1 个答案:

答案 0 :(得分:0)

如果您只想检测IE8,检查addEventListener将完成这项工作。但是,如果您想检查IE及其版本,我发现这种方法最直观,最有用:

var uA = navigator.userAgent;
var browser = null;
var ieVersion = null; 

if (uA.indexOf('MSIE 6') >= 0) {
    browser = 'IE';
    ieVersion = 6;
}
if (uA.indexOf('MSIE 7') >= 0) {
    browser = 'IE';
    ieVersion = 7;
}
if (document.documentMode) { // as of IE8
    browser = 'IE';
    ieVersion = document.documentMode;
}

您还可以通过这种方式在兼容模式/查看中捕获更高版本的IE。使用脚本非常简单:

if ((browser == 'IE') && (ieVersion <= 10)) 
    // do something, for example:
    document.documentElement.className += ' ie10-';