出于性能原因检测Trident 6+

时间:2013-11-04 16:29:28

标签: javascript jquery html css html5

使用JavaScript检测Trident 6.0+的最佳方法是什么?我知道浏览器检测很糟糕,但我正在构建一个Web应用程序,出于性能原因需要在Trident 6.0+上运行。您无法使用Modernizr来检测布局引擎中的性能。

我并不担心检测的可靠性,因为如果用户足够精明,可以绕过JavaScript检测,那么我相信他们会理解网络应用是否无法正常工作正确。 ;)

到目前为止我尝试过:

var ua = navigator.userAgent;
isTri6 = ua.match(/Trident\/6/i);
isTri7 = ua.match(/Trident\/7/i);
if( !isTri6 | !isTri7 ) { console.warn("Not running on Trident 6+"); } 

这不会引发任何错误,但它确实警告控制台Chrome,Firefox和IE10& IE11。 (它不应该警告IE10 +)如果你有办法不使用用户代理(如条件评论),请告诉我。我也尝试过使用条件注释,但结果却相同。

非常感谢任何输入!

1 个答案:

答案 0 :(得分:1)

首先,当代理人不是Trident 6而不是Trident 7时,您可能想要发出警告:

if( !isTri6 && !isTri7 ) { ... }

如果代理商不是Trident 6 而不是Trident 7,那么旧条件就会触发,这始终是真的。

其次,Chrome和Firefox会抛出警告,因为根本没有人使用Trident布局引擎!您可能需要相应地修改您的条件。