在使用yep / nope / modernizr.load()加载资源之前,我需要检查两个项目的支持。怎么会这样做?
两个测试通过后,不是一个或另一个,而是两个。
一个是我已添加的自定义测试,另一个是现有测试。
答案 0 :(得分:2)
取自文档...
Modernizr.load既小又简单,但它可以为你做一些繁重的工作。当您的脚本依赖于多个Modernizr功能测试时,使用Modernizr.load是一个稍微复杂的示例。一种好的技术是将多个polyfill脚本包装成一个“oldbrowser”类型的脚本,这样你最终不会一次加载太多的脚本。这是可行的:
Modernizr.load([
{
test : Modernizr.fontface && Modernizr.canvas && Modernizr.cssgradients,
nope : ['presentational-polyfill.js', 'presentational.css']
}
]);
如您所见,答案只是将您需要的所有测试放在一个布尔表达式中。
我已经简化了文档中的示例,实际上文档中给出的示例更详细,所以请继续阅读它们,以及它可能会为您提供更好的方法来实现您的目标。重新开始。
希望有所帮助。
答案 1 :(得分:1)
@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'
}
]);