我想在我的代码中使用autofocus="autofocus"
,但由于某些浏览器还不支持,我想添加一些JS代码,它会搜索带有这种标记的元素,并且专注于JS。但由于这似乎是一个常见的要求,我想知道是否有任何现成的库,它们可以解决至少一些HTML5对旧版浏览器的烦恼?
答案 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这样的库的用户说他们实现了这样的功能。 无论如何我都不推荐它,尝试自己编写所需的最少功能。
答案 3 :(得分:0)
Modernizr(前面提到过)的作用是进行特征检测,以确定可用的HTML 5功能。 Modernizr不会自动提供不可用的HTML 5功能,但它确实可以有条件地加载脚本(通常称为polyfill)来添加这些功能。在autofocus
的情况下,html5support库应该提供您需要的内容,并且您可以使用Modernizr的条件加载仅在需要时加载它。