이벤트 핸들러(event handler)는 지정된 대상에게 이벤트 발생시 실행할 함수를 지정하는 것을 말한다. 일종의 객체의 프로퍼티이며 이 프로퍼티에 함수를 대입하는 것과 동일하다. 이때 함수를 보통 핸들러(handler)라고 부르기도 한다.
이벤트 핸들러는 프로퍼티에 값을 대입하는 방식이다보니 이벤트 등록 대상에게 동일한 이벤트 타입으로 다른 함수를 지정해서 동시에 함수를 실행하게 할 수 없다. 늘 사용하는 패턴은 아니지만 만약에 동일한 이벤트 타입에 서로 다른 함수를 실행시키고 싶다면 이벤트 리스너(event listener) 방식으로 이벤트를 등록해야 한다.
이벤트 핸들러가 사용가능하다면 이벤트 리스너 방식도 지원하므로 구현하고자 하는 방향에 따라 적절하게 사용하면 된다.
Window
객체에 대한 DOM 표준 사양 문서에 정의한 이벤트 핸들러를 나타낸다.
문서가 인쇄를 시작하거나 인쇄 미리보기가 닫힌 후에 발생한다.
문서가 인쇄되거나 인쇄를 위해 미리보기가 될 때 발생한다.
활성된 window
에서 비활성으로 변경되는 경우 발생한다.
window
에서 사용할 리소스 로드에 실패했거나 사용할 수 없는 경우 발생한다.
비활성된 window
에서 활성으로 변경되는 경우 발생한다.
URL의 조각 식별자(hash)가 변경되면 발생한다.
사용자의 기본 언어가 변경될 때 발생한다.
window
에서의 load
이벤트는 HTML 문서가 웹브라우저에서 해석이 완료되는 시점에 발생한다.
window.postMessage()
를 호출하여 창이 메시지를 받았을 때 발생한다.
역직렬화를 할 수 없는 메시지를 수신할 때 window
에서 발생한다.
웹브라우저가 네트워크에 대한 액세스 권한을 잃고 Navigator.onLine
값이 false
로 전환되면 발생한다.
웹브라우저가 네트워크에 액세스하고 Navigator.onLine
의 값이 true
로 전환되면 발생한다.
세션 기록과 다른 페이지를 표시하는 과정에서 웹브라우저가 현재 페이지를 숨기면 발생한다. 예를 들어서 사용자가 웹브라우저의 뒤로가기 버튼을 클릭하면 이전 페이지가 표시되기 전에 현재 페이지에서 페이지 숨기기 이벤트를 수신한다.
세션 기록 항목에 의해서 페이지가 보여질 때 발생한다.
사용자가 세션 기록을 탐색하는 동안 활성 기록 항목이 변경되면 발생한다.
Promise
가 거부될 때 명시된 거부를 처리 후 전역(Window
, Worker
) 스코프로 전송된다.
창(window) 크기가 변경될 때 발생한다. 일반적으로 뷰포트 크기 변경이 있는 경우 발생한다.
저장 영역(localStorage
또는 sessionStorage
)이 다른 문서의 컨텍스트에서 수정되면 발생한다.
프로미스(promise)가 거부될 때 명시된 핸들러가 없는 경우 전역(Window
, Worker
) 컨텍스트(context)로 전송한다.
문서나 하위 리소스가 언로드(unload)일 때 발생한다.
요소가 스크롤 될 때 발생한다.
스크롤이 완료되면 VisualViewport
, Document
또는 Element
에서 발생한다.