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
, показанным в его ответе.)