我想仅为不支持媒体查询的浏览器加载Respond.js polyfill。我使用RequireJS来管理我的js文件,使用Modernizr来检测功能支持。
只有当浏览器不支持媒体查询时,让RequireJS加载Respond.js的最佳方法是什么?
我看到了这个答案并且它有效但是有更好的方法吗?当我添加更多的polyfill时,我不得不一遍又一遍地重复这个?:RequireJS: Conditionally Load Polyfill Using Modernizr
我的代码看起来像这样,并且包含在我的主要require语句中:
if (Modernizr.mq('only all')) {
require(['plugins/respond'], function(){});
}
答案 0 :(得分:1)
最简单的方法是获取包含Yepnope.js的Modernizr包。然后你可以这样有条件地加载:
Modernizr.load({
test: Modernizr.mq('only all'),
yep: '',
nope: 'plugins/respond.js'
});
不幸的是,是的,您必须为要使用polyfill支持的每个功能执行此操作。 yep
属性允许您在功能存在时加载脚本。