javascript - 出于性能原因检测 Trident 6+

标签 javascript jquery css html

使用 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/

相关文章:

javascript - IONIC 放置了类 "click-block click-block-hide",我的内容消失了

javascript - 如何在 .click() 上取消绑定(bind)另一个 jQuery 函数?

javascript - 在Node中同步执行多个shell命令

javascript - 如何解决 'Redirect has been blocked by CORS policy: No ' Access-Control-Allow-Origin' header'?

javascript - Twitter Bootstrap Scroll spy

javascript - 与 2 个触摸事件 javascript 插件冲突,以错误的顺序分层触摸事件?

javascript - 在 mouseout 上保持视差移动一秒钟并平稳停止

php - jquery 使用ajax检查用户名是否已在数据库中

html - CSS 链接的相对路径解析

html - 操作<nav> <ul> </ul> </nav>中的单个<li>元素