我在一个正在处理的项目中遇到此代码,该项目用于检测浏览器是否为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/