2011-11-27 33 views
0

我想在我的代码中使用autofocus="autofocus",但是由于一些浏览器不支持这个功能,我正在考虑添加一些JS代码,它会搜索带有这样标记的元素,并将其与JS集中。但是,由于这似乎是一个常见的要求,我不知道是否有任何现成的库,它可以照顾至少一些HTML5与旧版浏览器的烦恼?是否有一个JS库为浏览器添加HTML 5功能,但不支持它们?

回答

3

我相信正确的答案是不完全的。 Modernizr 2.0(包括html5shim)为我们提供了html5的语义元素(实际上是html5shim)以及可用于优雅js后备的强大功能检测。

在你情况下,将使用jQuery .focus()的东西,如:

 if (!Modernizr.autofocus){ 
     $('input[autofocus=""]').focus(); 
    } 

更多的例子here

0

像jQuery库的用户说,他们实现这样的功能。 我不推荐使用它,尝试编写自己需要的最小功能。

再看看http://www.modernizr.com/

+2

Modernizr不执行*缺少的功能,它只是做功能检测。 – duri

+0

感谢@duri信息,其实我从来没有看过它。 – 2011-11-27 22:14:46

2

如果旧版浏览器不支持某些高级功能,那么我会说跟着progressive enhancement不用担心它。只要您的网站订购产品的核心功能或其他功能一应俱全,那么不要害怕添加闪亮的html5功能,以便为您的用户提供良好的浏览器。

把笨重的/第三方代码强制IE6和7以文明的方式行事可能会对你有很多工作,容易出错,甚至不会给你太多的因为使用IE6的人可能不会看到Chrome用户的肩膀,看到你的网站更好的版本。

这里是slides(来自jQuery会议),真正为我驾驶这个家。

0

Modernizr(之前提到)的作用是执行特征检测,以确定可用的HTML 5功能。 Modernizr不会自动生成不可用的HTML 5功能,但它确实可以让您有条件地加载脚本(通常称为polyfill)以添加这些功能。在autofocus的情况下,html5support库应该提供您需要的内容,并且您可以使用Modernizr的条件加载来只在需要时加载它。

相关问题