Modernizr.load已弃用。 Yepnope.js已弃用。怎么办?

时间:2015-11-29 18:44:37

标签: conditional modernizr yepnope

在Modernizr v3之前,我使用的是yepnope.js

Modernizr.load和yepnope.js都被弃用了。我们现在如何有条件地调用样式表或javascript文件?

使用Modernizr v2.5.3的示例:

Modernizr.load({
  test: Modernizr['object-fit'],
  nope: ['./dist/scripts/object-fit.js'],
  complete: function(){
  if (!Modernizr['object-fit']) {
   jQuery(".poster img").imageScale({
   scale: "best-fill", 
   rescaleOnResize: true
   });
  }
 }
});

2 个答案:

答案 0 :(得分:4)

a new syntax,功能名称全都是小写的。您可以将其与jQuery's getScript method结合使用。

看起来像这样:

if (Modernizr.objectfit){
    jQuery.getScript("./dist/scripts/object-fit.js")
        //it worked! do something!
        .done(function(){
            console.log('js loaded');
        })
        //it didn't work! do something!
        .fail(function(){
            console.log('js not loaded');
        });
} else {
    jQuery(".poster img").imageScale({
        scale: "best-fill", 
        rescaleOnResize: true
    });
}

答案 1 :(得分:0)

在这里查看脚本:https://stackoverflow.com/a/7719185 - 不需要jQuery。 (请注意,答案中有一个较短的Promise示例;请不要在第一个示例之后停止阅读(就像我一样)。)

这里是CSS:loadCSShttps://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js

- 这在某种程度上甚至比YepNope.js更好,如果除了加载东西+回调之外你不需要它的任何功能。因为上面链接的东西比yepnope.js更小(更小min.js.gz)。

(并且可以与他的回答中显示的Modernizr mhk结合使用。)