我想在网页上使用一些新的HTML5表单属性和输入类型。一些浏览器已经支持他们,其他浏览器不支持,也不会。这就是为什么我想要使用Modernizr - 那是我的麻烦开始。Modernizr - 加载polyfills的正确方法/使用自定义检测
据我的理解,Modernizr本身不是一个polyfill,而是一个脚本,可以测试浏览器是否能够支持一些新的HTML5/CSS3。如果有必要,可以加载一个polyfill来“模拟”这些功能,以便它们可以用于不支持/旧版本的浏览器。这是正确的,我猜?
关于测试/加载:什么是用Modernizr加载polyfills的正确或最好的方法?
在我发现这个文档:
Modernizr.load({
test: Modernizr.geolocation,
yep : 'geo.js',
nope: 'geo-polyfill.js'
});
,但一些网页也做这样的:
if (Modernizr.touch){
// bind to touchstart, touchmove, etc and watch `event.streamId`
} else {
// bind to normal click, mousemove, etc
}
另外,实际上,我怎么去了解如何将这些功能可以检测被称为?像Modernizr.geolocation
确实存在每个功能检测?
在Modernizr GitHub存储库中,还有许多用户贡献的特征检测。 如何将这些实现到我的Modernizr版本中?或者最好只使用他们的建设者?
在Safari中,HTML5表单验证有效,但没有用于显示错误消息的UI。基本上,这个功能只是实现了一半。这就是为什么Modernizr在Safari中给出了一个误报,就像这里已经提到的那样:https://github.com/Modernizr/Modernizr/issues/266 显然有人用这样的自定义测试来解决这个问题,但我仍然不明白如何使用它。1
'yepnope'现已被弃用。 –