用于执行浏览器检测的功能检测(非用户代理嗅探)

时间:2016-03-07 17:59:44

标签: javascript feature-detection browser-detection

我们公司有一项业务规则,我们应该阻止我们的用户从尚未经过QA团队完全测试的浏览器访问我们的应用程序。此业务规则不可更改,我们的用户提前知道他们只能使用某些浏览器来使用我们的产品。

为了实现该业务规则,我正在寻找像Modernizr这样的网络库,它使用特征检测来检测浏览器。 Modernizr是一个功能检测库,而不是浏览器检测库,他们已经说they won't add browser detection

是否有任何库使用功能检测技术来验证用户代理字符串?

我宁愿不单独使用用户代理嗅探。如果我想进行用户代理嗅探,我会使用Bowser之类的内容。

预计解决方案不需要100%正确。解决方案只需要90%正确。

1 个答案:

答案 0 :(得分:1)

在你的情况下,你真的想要UA嗅探,因为你的QA团队正在测试[比如说] Firefox和Internet Explorer,你的企业想要禁止其他浏览器。但是,您可能已经阅读了UA嗅探的所有缺点,浏览器可以欺骗其他浏览器,难以维护最新列表,yadda yadda。非常感谢npm,您可以通过useragent等模块获得可靠且最新的UA嗅探和对帐。

npm install useragent --save

如果您的QA团队实际上正在测试功能并且您的业务规则是由合理且合乎逻辑的人编写的,那么您可以像我们其他人一样使用功能检测。相反,您将在2016年阻止用户使用您的应用/网站,因为一个天真的项目所有者想要只支持他/她感到满意的浏览器(叹息)。

编辑:如果您真的想给别人留下深刻印象,您可以编写实际在浏览器中执行的功能测试。您可以自动点击按钮/链接,填写表单,并针对这些用户操作的副作用编写断言。例如,您可以使用无效凭据填写登录表单,单击“提交”,并期望显示“无效登录”错误消息。 Selenium是一个非常受欢迎的工具,但也有免费的开源工具,如FuncUnit和其他允许您这样做的工具。然后,您可以使用browserstack之类的东西在您选择的浏览器中运行这些测试。还有免费工具,如Testee,允许您安装所有支持的浏览器的计算机,以便您可以在这些浏览器中启动功能测试。这适用于本地或像Travis这样的CI工具。

免责声明:我为建立和维护FuncUnit和Testee的公司工作 - 这些工具是免费和开源的,这不是为了宣传我们公司。