본문 바로가기
바닐라코딩 사전학습/JS

window.onload()

by 꼬마보노 2021. 12. 30.

JS는 코드를 순차적으로 읽어 들이는 프로그래밍 본연의 작동 방식과, 실행 이전에 여러 체크를 하지 않고 실행을 하는 인터프리터 언어적 특성으로 인해 작성 위치에 따라 에러를 발생시키기도 한다.

 

<script>
var a = document.getElementById('hi').innerHTML = "hello";
</script>

<span id = "hi>hi</span>

위의 코드는 document.getElementById('hi'); 가 html상에서 태그가 생성되기도 전에 실행됨으로써 문제가 일어난다.

위의 문제를 해결하려면 스크립트를 태그 뒤로 옮기면 된다.

<span id = "hi>hi</span>

<script>
var a = document.getElementById('hi').innerHTML = "hello";
</script>

하지만 가독성이 떨어지므로 사용하는게 window.onload이다.

 

window.onload 사용방법

<script>
window.onload = function() {
	var a = document.getElenemtById('hi').innerHTML = "hello";
}
</script>

<span id = "hi">hi</span>

위의 코드와 같이 window.onload 함수를 오버라이딩(재정의)해주면 onload함수 내의 코드 스크립트는 웹브라우저 내의 모든 요소가 준비가 되어야만 실행이 되도록 할 수 있다.

(웹브라우저 자체를 담당하는 window라는 객체가 웹 문서를 불러올 때, 문서가 사용되는 시점에 실행되는 onload라는 함수를 다시 재정의 한다는 개념이다.)

 

window.onload와 <body onload="">

페이지의 모든요소들이 로드되어야 window.onload가 호출되며 한 페이지에 하나의 window.onload() 함수만 적용된다.

또한 window.onload와 <body onload="">는 동시에 사용을 할 수 없다.

<body onload="">가 실행되면 window.onload는 실행이 되지 않는다.

동시에 사용하려면 window::onload() 를 사용해야한다.

실행 순서는 <body onload="">가 먼저 실행되고 이어서 window::onload()가 실행된다.

'바닐라코딩 사전학습 > JS' 카테고리의 다른 글

underscore.js 라이브러리  (0) 2021.12.28
Prototype 객체  (0) 2021.12.28
Windows 객체  (0) 2021.12.28
this의 4가지 역할  (0) 2021.12.27
new 예약어  (0) 2021.12.27