2014-09-01 1 views
1

나는 pure JS로 Modernizr을로드했습니다.순수 JS에 JS 파일을로드 한 후 콜백

var modernizr = document.createElement('script'); 
modernizr.src = 'http://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.2/modernizr.min.js'; 
modernizr.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(modernizr); 

이제 더 많은 JS 파일을 포함하려면 Modernizr.load을 사용하고 싶습니다. Modernizr이로드 될 때 콜백 함수가 있습니까?

답변

0

onloadonreadystatechange 이벤트를 개체에 추가하십시오. 최대한 많은 브라우저 지원과 해킹으로 다음과 같이 보입니다.

modernizr.onload = modernizr.onreadystatechange = function() { 
    if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) { 
     done = true; 

     // Handle memory leak in IE 
     modernizr.onload = modernizr.onreadystatechange = null; 
     if (head && modernizr.parentNode) { 
      head.removeChild(modernizr); 
     } 

     callback(); 
    } 
};