프로그램/Javascript

자바스크립트 윈도우 이벤트 정리

neorc 2026. 3. 17. 14:01

자바스크립트의 window 객체는 브라우저 창과 관련된 다양한 이벤트를 제공합니다. 이 이벤트들은 페이지 로드, 크기 변경, 스크롤 등 창 상태 변화를 감지할 때 사용되며, 주로 addEventListener()로 등록합니다.

주요 Window 이벤트 목록

Window 객체에서 청취할 수 있는 핵심 이벤트는 다음과 같습니다.

이벤트 이름설명
load 페이지와 모든 리소스(이미지, 스타일시트 등)가 완전히 로드될 때 발생
resize 창 크기가 변경될 때 발생 
scroll 창이나 문서가 스크롤될 때 발생
unload 페이지가 언로드될 때 발생
beforeunload 페이지가 언로드되기 직전 발생
blur 창이 포커스를 잃을 때
focus 창이 포커스를 얻을 때
online 네트워크 연결이 복구될 때
offline 네트워크 연결이 끊길 때
storage localStorage나 sessionStorage가 변경될 때

이 외에도 orientationchange(기기 회전), hashchange(URL 해시 변경), pagehide(페이지 숨김) 등이 있습니다.

이벤트 등록 방법

window 이벤트는 addEventListener()나 속성(onload 등)으로 등록합니다.

  • addEventListener(): 여러 핸들러 등록 가능, 권장 방식.
  • 속성 방식: window.onresize = function() { ... }.

샘플 코드 예제

1. 페이지 로드 이벤트 (load)

 
javascript
window.addEventListener('load', function() { console.log('페이지가 완전히 로드되었습니다.'); // 초기화 작업 수행 });

이 이벤트는 DOMContentLoaded보다 늦게 발생하며 모든 리소스 로드를 기다립니다.

2. 창 크기 변경 (resize)

 
javascript
function updateSize() { console.log(`창 크기: ${window.innerWidth} x ${window.innerHeight}`); } window.addEventListener('resize', updateSize);

빈번한 호출을 피하려면 throttle 적용을 고려하세요.

3. 스크롤 이벤트 (scroll)

 
javascript
window.addEventListener('scroll', function() { const scrollY = window.scrollY; console.log(`스크롤 위치: ${scrollY}px`); if (scrollY > 100) { document.body.style.background = 'lightgray'; // 예시 효과 } });

성능을 위해 debounce/throttle 사용 권장.

4. 포커스/블러 (focus/blur)

 
javascript
window.addEventListener('focus', () => console.log('창 포커스')); window.addEventListener('blur', () => console.log('창 블러'));

탭 전환 시 유용합니다.

이 이벤트들은 브라우저 호환성이 높아 대부분 지원되며, 모바일에서도 잘 작동합니다.

'프로그램 > Javascript' 카테고리의 다른 글

JQuery 윈도우 이벤트 정리  (0) 2026.03.17