使用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 +)如果你有办法不使用用户代理(如条件评论),请告诉我。我也尝试过使用条件注释,但结果却相同。
非常感谢任何输入!
答案 0 :(得分:1)
首先,当代理人不是Trident 6而不是Trident 7时,您可能想要发出警告:
if( !isTri6 && !isTri7 ) { ... }
如果代理商不是Trident 6 或而不是Trident 7,那么旧条件就会触发,这始终是真的。
其次,Chrome和Firefox会抛出警告,因为根本没有人使用Trident布局引擎!您可能需要相应地修改您的条件。