从我所做的所有阅读中, 我已经明白不建议使用用户代理字符串,因为它可能是欺骗性的。设备可能会受到阻碍等。
我也明白最好的选择是进行浏览器功能测试。
我该怎么办?我的意思是,是否有我可以做的标准功能测试,例如:object detection?
还有一个问题是,每次用户访问网站时,这不会包含一些开销吗?我知道我可以用一些饼干来解决这个问题。
请不要建议使用像jQuery这样的第三方插件/框架。
答案 0 :(得分:5)
Modernizr是一个执行特征检测的库。您可以按原样使用该库,然后查询它以获取所需的功能,也可以查看它对您要检测的特定功能的工作方式,并将其复制到您自己的代码中。
如何对给定功能进行特征检测完全取决于特定功能。
实际的特征检测通常非常快(可能比检索/存储cookie中的任何内容更快)。此外,如果用户升级到浏览器功能发生变化的较新版本,您最好每次都进行功能检测。
例如,如果您想知道是否可以在Array对象上使用.forEach()方法,则只需使用它:
if ( Array.prototype.forEach ) {
// enter code here
}
答案 1 :(得分:2)
这是一篇关于这个主题的MSDN杂志文章:No Browser Left Behind: An HTML5 Adoption Strategy。
他们提到使用框架,但你可以应用没有它解释的技术。