在modernizr.load()中进行两次Modernizr测试?

时间:2013-02-09 08:36:52

标签: javascript modernizr

在使用yep / nope / modernizr.load()加载资源之前,我需要检查两个项目的支持。怎么会这样做?

两个测试通过后,不是一个或另一个,而是两个。

一个是我已添加的自定义测试,另一个是现有测试。

2 个答案:

答案 0 :(得分:2)

Modernizr documentation有答案:

取自文档...

  

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'
   }
   ]);