2014-03-18 2 views
1

미디어 쿼리를 지원하지 않는 브라우저에 대해서만 Respond.js 폴리필을로드하고 싶습니다. 필자는 js 파일과 Modernizr을 관리하기 위해 RequireJS를 사용하여 기능 지원을 탐지합니다.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 속성을 사용하면 기능이있을 때 스크립트를로드 할 수 있습니다.