使用 JavaScript 检测 Trident 6.0+ 的最佳方法是什么?我知道浏览器检测很糟糕,但我正在构建一个网络应用程序,出于性能原因需要在 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+)如果你有办法在不使用用户代理的情况下做到这一点(比如条件注释)请告诉我。我也尝试过使用条件注释,但结果相同。
任何输入将不胜感激!
最佳答案
首先,您可能希望在代理不是 Trident 6 和 Trident 7 时抛出警告:
if( !isTri6 && !isTri7 ) { ... }
如果代理不是 Trident 6 或不是 Trident 7,则触发旧条件,这始终为真。
其次,Chrome 和 Firefox 会抛出警告,因为它们根本没有使用 Trident 布局引擎!您可能需要相应地修改您的条件。
关于javascript - 出于性能原因检测 Trident 6+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772302/