如何检测浏览器功能?

时间:2011-12-14 07:33:06

标签: javascript css browser css3 cross-browser

从我所做的所有阅读中, 我已经明白不建议使用用户代理字符串,因为它可能是欺骗性的。设备可能会受到阻碍等。

我也明白最好的选择是进行浏览器功能测试。

我该怎么办?我的意思是,是否有我可以做的标准功能测试,例如:object detection

还有一个问题是,每次用户访问网站时,这不会包含一些开销吗?我知道我可以用一些饼干来解决这个问题。

请不要建议使用像jQuery这样的第三方插件/框架。

2 个答案:

答案 0 :(得分:5)

Modernizr是一个执行特征检测的库。您可以按原样使用该库,然后查询它以获取所需的功能,也可以查看它对您要检测的特定功能的工作方式,并将其复制到您自己的代码中。

如何对给定功能进行特征检测完全取决于特定功能。

实际的特征检测通常非常快(可能比检索/存储cookie中的任何内容更快)。此外,如果用户升级到浏览器功能发生变化的较新版本,您最好每次都进行功能检测。

例如,如果您想知道是否可以在Array对象上使用.forEach()方法,则只需使用它:

if ( Array.prototype.forEach ) {  
    // enter code here
}

答案 1 :(得分:2)

这是一篇关于这个主题的MSDN杂志文章:No Browser Left Behind: An HTML5 Adoption Strategy

他们提到使用框架,但你可以应用没有它解释的技术。