既然不推荐使用 yepnope,如何使用 modernizr 加载条件 js 文件?

How to load a conditional js file using modernizr now that yepnope is deprecated?

既然 yepnope 和 .load 在最新版本的 modernizr 中已弃用,那么使用 modernizr 加载条件 javascript 文件有哪些好的做法。

以前可以使用.load函数。 http://modernizr.com/docs/#load

Modernizr.load({
  test: Modernizr.geolocation,
  yep : 'geo.js',
  nope: 'geo-polyfill.js'
});

现在 .load 与 yepnope 一起被弃用了。 https://github.com/SlexAxton/yepnope.js/

在弃用 yepnope 之前的答案参考 Loading Scripts Using Modernizr... Not Working

您可以使用 jQuery's getScript method。我认为您也可以使用 .fail 而不是 else 语句。我花了一上午时间弄清楚这个问题,并一直在努力回答这些问题以节省人们一些时间!

是这样的吗?

if (Modernizr.geolocation) {
    jQuery.getScript("geo.js")
        //it worked! do something!
        .done(function(){
            console.log('geo.js loaded');
        });
} else {
    jQuery.getScript("geo-polyfill.js")
        //it worked! do something!
        .done(function(){
            console.log('geo-polyfill.js loaded');
        });
}