在使用 yep/nope/modernizr.load() 加载资源之前,我需要检查对两项的支持。怎么做呢?
在通过两项测试后,不是其中一项,而是两项。
一个是我已经添加的自定义测试,另一个是现有测试。
在使用 yep/nope/modernizr.load() 加载资源之前,我需要检查对两项的支持。怎么做呢?
在通过两项测试后,不是其中一项,而是两项。
一个是我已经添加的自定义测试,另一个是现有测试。
Modernizr 文档为您提供了答案:
取自文档...
Modernizr.load 小而简单,但它可以为您完成相当多的繁重工作。当您的脚本依赖多个 Modernizr 功能测试时,这里有一个稍微复杂一点的使用 Modernizr.load 的示例。一个好的技术是将多个 polyfill 脚本包装成一个“oldbrowser”类型的脚本,这样你就不会一次加载太多的脚本。以下是可能的工作方式:
Modernizr.load([
{
test : Modernizr.fontface && Modernizr.canvas && Modernizr.cssgradients,
nope : ['presentational-polyfill.js', 'presentational.css']
}
]);
如您所见,答案就是将您需要的所有测试放在一个布尔表达式中。
我已经简化了文档中的示例,实际上文档中给出的示例更加详细,因此请务必阅读它们,因为它可能会为您提供更好的方式来做您所追求的事情。
希望有帮助。
@Spudley 的答案很棒,但在某些情况下可能更有帮助
Modernizr.load([
{
test: Modernizr.input.autofocus || Modernizr.cssanimations,
nope: 'jquery.js'
},
{
test: Modernizr.input.autofocus,
nope: 'autofocus.js'
},
{
test: Modernizr.cssanimations,
nope: 'animations.js'
}
]);