프론트엔드/JavaScript

[JavaScript] window.onload

an_apricot__ 2021. 5. 20. 12:51

자바 스크립트는 맨 윗 줄부터 차례로 실행되기 때문에

<head>에 작성한 <script> 태그에서 <body> 태그 안의 요소를 불러오려 할 경우 에러가 발생한다. 

 

이를 해결하기 위해 window.onload 함수를 사용할 수 있다.

window.onload 함수 안의 요소는 페이지의 모든 요소가 실행된 뒤 가장 마지막에 실행되기 때문에

<head>에 작성한 <script> 태그에서 <body> 태그 안의 요소를 사용할 수 있게 된다.

 

 

< 에러 발생 코드 >

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
	var list1 = ["apple", "banana", "kiwi"];
	document.getElementById("demo").innerHTML = list1[2];
    
   	var list2 = new Array("red", "yellow", "green");
	document.getElementById("demo2").innerHTML = list2[0];
</script>
</head>
<body>
	<p id="demo"></p>
	<p id="demo2"></p>
</body>
</html>

 

 

< 정상 실행 코드 >

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
	window.onload = function() {
		var list1 = [ "apple", "banana", "kiwi" ];
		document.getElementById("demo").innerHTML = list1[2];

		var list2 = new Array("red", "yellow", "green");
		document.getElementById("demo2").innerHTML = list2[0];
	}
</script>
</head>
<body>
	<p id="demo"></p>
	<p id="demo2"></p>
</body>
</html>