我在我正在处理的项目中遇到了这个代码,用于检测浏览器是否为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是我能找到的最接近的信息。
谢谢你看一下:)
答案 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-';