2014-03-18 3 views
1

Я бы хотел загрузить polypill Respond. только для браузеров, которые не поддерживают медиа-запросы. Я использую RequireJS для управления файлами js и Modernizr для обнаружения поддержки функций.Как включить полиполки только в случае необходимости с помощью RequireJS

Каков наилучший способ загрузки RequireJS Respond.js только в том случае, если браузер не поддерживает мультимедийные запросы?

Я видел этот ответ, и он работал, но есть ли лучший способ сделать это? Как добавить больше polyfills я должен был повторить это снова и снова ?: RequireJS: Conditionally Load Polyfill Using Modernizr

Мой код выглядит, как это и оборачивают вокруг моего главного требуют заявление:

if (Modernizr.mq('only all')) { 
    require(['plugins/respond'], function(){}); 
} 

ответ

1

Самый простой способ, чтобы получить Пакет Modernizr, включающий Yepnope.js. Затем вы можете загрузить условно так:

Modernizr.load({ 
    test: Modernizr.mq('only all'), 
    yep: '', 
    nope: 'plugins/respond.js' 
}); 

К сожалению, да, вы должны сделать это для каждой функции, которую вы хотите поддерживать с polyfill. Свойство yep позволяет загружать скрипт, когда присутствует функция.

Смежные вопросы