2013-05-19 1 views
1

이렇게하는 것이 가장 좋은 방법에 대한 귀하의 의견과 조언에 감사드립니다. 이드는 현대 스크립트 테스트가 거짓이라면 작은 스크립트를 실행하는 것을 좋아합니다. 이 솔루션은 조금 어색해 보입니다.Modernizr yepnope 거짓 콜 경우에만 조건부 콜백

 Modernizr.load({ 
      test: Modernizr.inlinesvg, 
      yep : 'js/funky-svg-animation.js', 
      complete : function() { 
       if (!Modernizr.inlinesvg){ 
        console.log('stuff to do when false'); 
       } 
      }, 
     }); 

편집 : 의견을 바탕으로,이 효율적인 방법이 될 것입니다 :

 if (Modernizr.inlinesvg){ 
      $(body).append('<script src="js/funky-svg-animation.js"><\/script>') 
     } else { 
      console.log('stuff to do when false'); 
     } 

을 또는이 방법에 문제가?

답변

2

Modernizr에는 yepnope이 있습니다. 따라서 테스트중인 브라우저가 필요한 기능을 지원하지 않는 경우라면 원하는대로 할 수 있습니다. 경로가// 당신의/script.js하려면 그냥

Modernizr.load({ 
     test: Modernizr.inlinesvg, 
     yep : 'js/funky-svg-animation.js', 
     nope : 'path/to/your/script.js' 
     }, 
    }); 

:

console.log('stuff to do when false'); 

이것은 Yenope의 기본 동작, 즉이 필요한 경우 외부 리소스를로드 할 예정이다.

+0

그리고 나서 nope-states에서만 실행될 것이므로 script.js에서 조건문을 제거 할 수 있습니다 (Modernizr/yepnope에 대한 경험이 없기 때문에 이것을 가정합니다). – jabbink

+0

네가 맞아 엔도 피가로드됩니다 해당 기능을 브라우저에서 사용할 수없는 경우에만 스크립트. –

+0

그럼 당신을 위해 일한 적이 있습니까? –