3

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

在通过两项测试后,不是其中一项,而是两项。

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

4

2 回答 2

2

Modernizr 文档为您提供了答案:

取自文档...

Modernizr.load 小而简单,但它可以为您完成相当多的繁重工作。当您的脚本依赖多个 Modernizr 功能测试时,这里有一个稍微复杂一点的使用 Modernizr.load 的示例。一个好的技术是将多个 polyfill 脚本包装成一个“oldbrowser”类型的脚本,这样你就不会一次加载太多的脚本。以下是可能的工作方式:

Modernizr.load([
  {
    test : Modernizr.fontface && Modernizr.canvas && Modernizr.cssgradients,
    nope : ['presentational-polyfill.js', 'presentational.css']
  }
]);

如您所见,答案就是将您需要的所有测试放在一个布尔表达式中。

我已经简化了文档中的示例,实际上文档中给出的示例更加详细,因此请务必阅读它们,因为它可能会为您提供更好的方式来做您所追求的事情。

希望有帮助。

于 2013-02-09T15:42:55.173 回答
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'
   }
   ]);
于 2014-12-23T17:04:47.437 回答