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

person scottrod    schedule 29.11.2015    source источник


Ответы (2)


Появился новый синтаксис, и все имена функций написаны строчными буквами. Вы можете комбинировать это с методом 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
    });
}
person mhk    schedule 29.12.2015
comment
Большое спасибо @mhk! Извините, так долго не отвечал. - person scottrod; 13.04.2016
comment
Чтобы уточнить, это то, что сработало для меня: ``` $(function(){ if (Modernizr.objectfit){ } else { $.getScript(./dist/scripts/object-fit.js, function() { $ (.img-scale).imageScale({ масштаб: лучшее заполнение, rescaleOnResize: true }); }); }; }); ``` - person scottrod; 21.04.2016

Посмотрите здесь сценарии: https://stackoverflow.com/a/7719185 — jQuery не требуется. (Обратите внимание, что в ответе есть более короткий пример Promise; не прекращайте чтение после первого примера (как я)).

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

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

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

person KajMagnus    schedule 04.09.2017