
494
15장 웹 브라우저의 자바스크립트
드에는 이벤트 핸들러에 반환 값이 있고, 그 반환 값은 일반적으로 브라우저에 이
벤트와 연관된 기본 동작을 수행하지 말라는 신호 구실을 합니다. 예를 들어 폼의
전송 버튼에 있는
onclick
핸들러가
false
를 반환한다면(보통 이벤트 핸들러가 사
용자 입력이 클라이언트 사이드 유효성 검사를 만족하지 못한다고 판단했을 때) 웹
브라우저는 폼을 전송하지 않습니다.
브라우저의 기본 동작을 막는 표준 방법은 이벤트 객체에서
preventDefault()
메
서드(15.2.5절)를 호출하는 겁니다.
이벤트 대상의 이벤트 타입 하나에 이벤트 핸들러를 하나 이상 등록할 수 있습니
다. 등록된 타입의 이벤트가 일어나면 브라우저는 핸들러를 등록된 순서대로 호출
합니다. 흥미로운 사실은
addEventListener()
로 등록된 이벤트 핸들러와 객체 프
로퍼티로 등록된 이벤트 핸들러가 섞여 있어도 마찬가지로 순서를 지킨다는 것입
니다.
15.2.4
이벤트 대상이 Window 객체, 또는 기타 독립된 객체라면 브라우저는 이벤트에 반
응해 그 객체에 적절한 핸들러를 호출하기만 합니다. 반면 이벤트 대상이 Docu-
ment 객체, 또는 그에 포함된 Element 객체라면 상황이 좀 복잡해집니다.
대부분의