1

使用 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+)如果你有办法在不使用用户代理的情况下做到这一点(例如条件注释),请告诉我。我也尝试过使用条件注释,但结果相同。

任何输入将不胜感激!

4

1 回答 1

1

首先,您可能想在代理不是 Trident 6 和 Trident 7 时抛出警告:

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

如果代理不是 Trident 6或不是 Trident 7,则会触发旧条件,这始终是正确的。

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

于 2013-11-04T18:31:28.707 回答