2013-08-31 5 views
4

저는 Modernizr을 처음 접했고 전체 브라우저 호환성을 확인하는 간단한 방법을 찾고 있습니다. Modernizr 스크립트를 생성하여 HTML5, CSS3 및 최신 JavaScript 메소드에 크게 의존하는 웹 응용 프로그램의 가장 필수적인 구성 요소 만 테스트합니다. 이 모든 테스트를 동시에 실행할 수있는 방법이 있습니까? 문서를 살펴보면 각 기능을 하나씩 테스트 할 수있는 방법이 많이 있지만 한 번에 모든 기능을 수행 할 수있는 방법이 없습니다. 당신이 응용 프로그램을 구축하는 경우, 그래서 그것은 모든 테스트가 직접 Modernizr 객체의 논리 값으로 저장되는 것으로 나타났다모든 Modernizr 테스트를 한꺼번에 수행 할 수있는 방법이 있습니까?

의사 코드

if (Modernizr.testAll()) { 
    // Load site 
} else { 
    // Redirect to compatibility page 
} 

답변

4

:이 같은 뭔가를 바라고 있어요 기능 종속성을 많이하고 한 번에 모두를 테스트 할이 사용

var supported = true; 
for (var feature in Modernizr) { 
    if (typeof Modernizr[feature] === "boolean" && Modernizr[feature] == false) { 
    supported = false; 
    break; 
    } 
} 
+1

최근에 Modernizr .__ all__ 또는 뭔가 새로운 기능이 유용 할 수 있다고 생각했습니다. 특히 새로운 Modernizr.on() API를 사용하는 것이 좋습니다. Modernizr.on ('__ all__', function() {/ * 모든 비동기 테스트 * /});'... 당신은 @ 데이비드에 대해 어떻게 생각하니? –

+0

@StuCox : 내 생각에 그건 분명 좋을 것 같습니다. –

+0

이것은 잘 작동하지 않습니다. 모든 테스트 중 일부만 루프됩니다. –

0

내가 같은 일을 찾고 있었어요을하고 다음 코드를 내놓았다 :

for (var feature in Modernizr) 
{ 
    if (typeof Modernizr[feature] === "boolean") 
    { 
     console.log("Modernizr_" + feature + ": " +Modernizr[feature]); 

     for (var subFeature in Modernizr[feature]) 
     { 
      if (typeof Modernizr[feature][subFeature] === "boolean") 
      { 
       console.log("Modernizr_" + feature + "_"+ subFeature + ": " + Modernizr[feature]);   
      } 
     } 
    } 


} 

HTH!

관련 문제