我在我正在从事的一个项目中遇到了这段代码,用于检测浏览器是否为 IE8:
var isIE8 = function(){ return (!document.addEventListener) ? true : false; };
我不明白为什么条件运算符? true : false
用于如果 true 则返回 true,如果 false则返回 false。逻辑 NOT !
应用于 document.addEventListener
的值,并且始终返回一个 bool 值,这不是做完全相同的事情吗:
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/