用JavaScript检测Trident 6.0+的最佳方法是什么?我知道浏览器检测不好,但是出于性能原因,我正在构建一个需要在Trident 6.0+上运行的Web应用程序。您不能使用Modernizr来检测布局引擎中的性能。
我不担心检测的可靠性,因为如果用户足够聪明地可以进行JavaScript检测,那么我相信他们会了解Web应用程序是否无法正常运行。 ;)
到目前为止我尝试过的是:
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 +)如果您有一种不用使用用户代理的方式(例如条件注释),请告诉我。我也尝试过使用条件注释,但结果相同。
任何输入将不胜感激!
最佳答案
首先,您可能想在代理不是Trident 6也不是Trident 7时发出警告:
if( !isTri6 && !isTri7 ) { ... }
如果代理不是Trident 6或Trident 7,就会触发旧条件,这始终是正确的。
其次,Chrome和Firefox将发出警告,因为没有人完全使用Trident布局引擎!您可能需要相应地修改您的条件。