快速错误的方式检查IE或不?

时间:2013-07-03 11:39:58

标签: javascript cross-browser

我读了一篇关于 Test for Internet Explorer in JavaScript 的文章,该文章指出快速测试是:

var isMSIE = /*@cc_on!@*/0;

if (isMSIE) {
  // do IE-specific things
} else {
  // do non IE-specific things
}

但其中一个comments显示了另一种方式:(我不得不说,它有效)

if (-[1,]) {
// do non IE-specific things
} else {
// do IE-specific things
}

所以我问:

-[1,]有什么特别之处,IE不能识别它而其他人呢?

P.S。

发现了另一个快速的虚假伎俩

IE='\v'=='v'

1 个答案:

答案 0 :(得分:5)

在最新版本之前的IE中的{p> [1,].toString()1,,当以算术-为前缀时,会输出假NaN而其他浏览器会返回[1,].toString() === 1真实的-1

它是一种可怕的嗅探技术,完全避免它,并且正如其他人评论的那样检测对特定功能的支持。