본문 바로가기
개발(Development)/JS(자바스크립트)

[자바스크립트] 코드로 HTML에 다른 js파일을 로드하는 방법

by 카레유 2021. 7. 9.

보통 HTML 파일에서 js파일을 불러오려면,

head 영역에 아래와 같이 script태그를 추가하고, src속성으로 js파일의 경로를 설정한다.

<script src="js파일"><script>

 

* 참고: script태그의 위치 및 async/defer 속성에 대해서는 아래글 참고!

자바스크립트 로드 script 태그: async/defer 비동기 속성

 

그런데 어떤 이유에 의해서

자바스크립트 코드를 통해 js파일을 따로 로드해야하는 상황이 있을 수 있다.(모듈과는 다소 다른 개념이다)


# 자바스크립트로 html에 다른 js파일을 로드하는 방법

: 1) script엘리먼트를 생성하여, 2)src속성값으로 js파일 경로를 넣어주고, 3) HTML의 head태그에 추가해준다.

 

1. script 엘리먼트 생성

// 1. script 엘리먼트 생성
const script_element = document.createElement('script');

 

 

2. src 속성에 js파일 경로 설정

// 2. script엘리먼트의 src속성값을 "extra.js"로 지정한다.
script_element.setAttribute('src', 'extra.js');

 

 

3. HTML의 head태그의 자식으로 추가

// 3. head 태그의 자식으로 scrpt엘리먼트 추가
document.querySelector('head').appendChild(script_element);

*** 예제 코드 전문

- index.html 파일

<!DOCTYPE html>
<html lang="ko">
<head>
    <title>Document</title>
</head>
<body>
    
<script>
    
// 1. script 엘리먼트 생성
const script_element = document.createElement('script');

// 2. src속성값을 설정: "extra.js"로 지정
script_element.setAttribute('src', 'extra.js');

// 3. head 태그의 자식으로 scrpt엘리먼트 추가
document.querySelector('head').appendChild(script_element);

</script>

</body>
</html>

 

- extra.js 파일

alert('extra.js 파일에서 띄운 팝업입니다');

 

 

*** 실행 결과

- 브라우저에서 실행하면 extra.js파일에 작성해둔 팝업이 뜨고,

- 개발자도구로 보면 index.htm파일에 script 태그가 추가되어 있음을 알 수 있다.


이런 기법을 활용하면

프로그램 실행 중에도 원하는 타이밍에 JavaScript 코드를 통해 다른 자바스크립트 파일을 불러올 수 있게 된다.

 

댓글