我在一个正在处理的项目中遇到此代码,该项目用于检测浏览器是否为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是我可以找到的最接近的信息。

谢谢参观 :)

最佳答案

如果您只想检测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-';

关于javascript - 使用document.addEventListener使用JavaScript检测IE8,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24017640/

10-12 03:56
查看更多