2014-03-18 107 views
1

包含polyfill我想仅为不支持媒体查询的浏览器加载Respond.js填充。我使用RequireJS来管理我的js文件和Modernizr来检测功能支持。如何仅在需要时使用RequireJS

只有当浏览器不支持媒体查询时才能使RequireJS加载Respond.js的最佳方式是什么?

我看到了这个答案,它的工作,但有没有更好的方法来做到这一点?当我添加更多polyfills我将不得不在重复这和过?:RequireJS: Conditionally Load Polyfill Using Modernizr

我的代码看起来是这样的,并且围绕我的主要包裹需要声明:

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

回答

1

最简单的方法是让包含Yepnope.js的Modernizr软件包。然后,你可以有条件地加载此方式:

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

可惜的是,你必须为你想用填充工具以支持每一个功能做到这一点。 yep属性允许您在功能存在时加载脚本。

相关问题