是否有一个JS库可以将HTML 5功能添加到不支持它们的浏览器中?



我想在我的代码中使用autofocus="autofocus",但由于一些浏览器还不支持这一点,我正在考虑添加一些JS代码,这将搜索具有这样一个标签的元素,并将其与JS集中。但由于这似乎是一个普遍的要求,我想知道是否有任何现成的库,可以照顾至少一些HTML5的烦恼与旧的浏览器?

我相信正确的答案应该是不完全正确。Modernizr 2.0(包括html5shim)给了我们html5的语义元素(实际上是html5shim)和伟大的特征检测,你可以使用优美的js回退。

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

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

更多示例

如果旧的浏览器不支持某些高级功能,那么我会说遵循渐进式增强和不要担心。只要你的网站的核心功能——订购产品或其他任何东西——能够全面运行,那么就不要害怕添加闪亮的html5功能,以使你的用户在良好的浏览器上受益。

使用笨拙的第三方代码来强迫IE6和ie7以一种文明的方式运行,对你来说可能会有大量的工作,容易出现错误,甚至不会给你太多的回报,因为使用IE6的人可能不会超越Chrome用户来看到一个更好的网站版本。

这些幻灯片(来自一个jQuery会议)让我真正明白了这一点。

Modernizr(前面提到过)的作用是进行特性检测,以确定哪些HTML 5特性可用。Modernizr不会自动使不可用的HTML 5特性可用,但它使您可以有条件地加载脚本(通常称为polyfills)来添加这些特性。在autofocus的情况下,html5support库应该提供您所需要的,并且您可以使用Modernizr的条件加载来仅在需要时加载它。

像jQuery这样的库的用户说他们实现了这样的特性。无论如何,我不推荐这样做,试着自己编写你需要的最小函数。

请参阅http://www.modernizr.com/

相关内容

最新更新