是否有一个JS库可以向浏览器添加HTML 5功能,这些功能不支持它们?

时间:2011-11-27 21:28:38

标签: javascript html5

我想在我的代码中使用autofocus="autofocus",但由于某些浏览器还不支持,我想添加一些JS代码,它会搜索带有这种标记的元素,并且专注于JS。但由于这似乎是一个常见的要求,我想知道是否有任何现成的库,它们可以解决至少一些HTML5对旧版浏览器的烦恼?

4 个答案:

答案 0 :(得分:3)

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

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

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

更多示例here

答案 1 :(得分:2)

如果旧浏览器不支持某些高级功能,那么我会说跟随progressive enhancement不要担心。只要您的网站订购产品的核心功能,或任何 - 全面运作,那么不要害怕添加闪亮的html5功能,为您的用户提供良好的浏览器。

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

以下是slides(来自jQuery会议),真的为我带来了这个家。

答案 2 :(得分:0)

像jQuery这样的库的用户说他们实现了这样的功能。 无论如何我都不推荐它,尝试自己编写所需的最少功能。

另请查看http://www.modernizr.com/

答案 3 :(得分:0)

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