Modernizr.load Устарела. Yepnope.js Устарела. Что теперь?

До 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
   });
  }
 }
});

Ответ 1

Там новый синтаксис, а имена функций - в нижнем регистре. Вы можете комбинировать это с jQuery getScript.

Что будет выглядеть примерно так:

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

Ответ 2

Посмотрите здесь скрипты: fooobar.com/info/23339/... - не требуется jQuery. (Обратите внимание, что в ответе более короткий пример Promise, не прекращайте чтение после первого примера (как и я)).

И вот для CSS: loadCSS: https://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js

- это, в некотором роде, даже лучше, чем YepNope.js, если вам не нужны какие-либо его функции, кроме как просто загрузки stuff + callback. Поскольку материал, связанный выше, меньше (меньше min.js.gz), чем yepnope.js.

(И может сочетаться с Modernizr как mhk, показанным в его ответе.)