通过jQuery检测对特定HTML 5功能的支持

时间:2009-11-01 13:25:23

标签: jquery html5 jquery.support

我正在处理一些HTML5演示代码,包括<input type="date" />

等内容

这当前在Opera 10中正常工作,但每个其他浏览器只显示正常的文本输入。然后我使用jQuery.date-input插件在不支持它的浏览器上覆盖此行为。

问题是 - jQuery也在Opera上运行,所以在Opera中我得到两个日历选择器(一个来自浏览器,一个来自jQuery)

我现在可以使用if (window.opera)来解决这个问题 - 但是有一些方法可以使用jQuery.support,我可以可靠地检测当前浏览器是否支持特定的HTML5功能吗?

2 个答案:

答案 0 :(得分:17)

我会看看Modernizr。它是一个开源的,麻省理工学院授权的Javascript库,可检测对许多HTML5 / CSS3功能的支持,并且它非常小(7kb压缩)。要使用它,只需:

<script src="modernizr.min.js"></script> 

在您的文档的<head>内。之后,它具有各种功能来检查您的需求。例如:

if (Modernizr.canvas) { 
     // do stuff
}

还有很多方法可以检查您想要的特定HTML5 / CSS3功能。 Check out their website获取并查看文档。

答案 1 :(得分:11)

是的,检查特定的浏览器并不是你想要的。它有时可用于检测何时需要为浏览器错误(通常使用IE)应用变通方法,但如果您想知道浏览器是否支持某个功能,只需嗅探它。

有些东西比其他东西更容易嗅到。对于日期输入支持的例子,它非常简单。 input.type属性告诉您浏览器认为它是什么类型的控件;如果不支持日期输入,您将获得'text'

<input type="date" class="dateinput" />

if ($('.dateinput')[0].type!=='date') {
     $('.dateinput').addSomeDateScriptingPluginThing();
}