티스토리 뷰

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를 지원하지 않는다. - 참고

참고

'til' 카테고리의 다른 글

ECMA2018(ES9) 정규식 s flag  (0) 2019.10.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함