til
자바스크립트 동적 로딩
알쓸
2019. 10. 3. 20:55
브라우저 환경에서 자바스크립트를 동적으로 로딩해야 할 때 다음과 같은 방법을 쓸 수 있다.
var script = document.createElement('script');
script.type = 'text/javascript';
script.url = '...'; // script url.
document.body.appendChild(script);
스크립트 로딩 완료에 대한 콜백과, 구 IE 에서도 동작을 원하면 다음과 같이 사용하면 된다.
function loadScript (url, callback) {
var script = document.createElement('script');
script.type = 'text/javascript';
if (script.readyState) { // IE < 11
script.onreadystatechange = function() {
if (
script.readyState === 'loaded' ||
script.readyState === 'complete'
) {
script.onreadystatechange = null;
callback();
}
}
} else { // Others
script.onload = function () {
callback();
}
}
script.src = url;
document.body.appendChild(script);
}
- 모던 브라우저와, IE 11 이후는 script 의 readyState를 지원하지 않는다. - 참고