Document.createEvent()
Document.createEvent()
DOM 레벨 2 이벤트
지원 브라우저
크롬 15, FF 11, Opera 11.6, Safari 6
IE는 DOM Events 모듈을 지원하지 않기 때문에 지원되지않는다.
Event createEvent(String eventType)
throws DOMException
반환값
지정된 타입을 갖는 새로 생성된 Event 객체.
전달인자
eventType --> 원하는 Event 객체에 대한 이벤트 모듈의 이름.
예외
현재 구현이 요청된 타입의 이벤트를 지원하지 않으면, code 값이 NOT_SUPPORTED_ERR 인 DOMException 을 발생시킨다.
설명
파라미터로 전달받은 이벤트타입을 갖는 새 이벤트 객체를 생성한다. 주의점은 파라미터의 값이 생성할 인터페이스(단수형)의 이름이 아니라 해당 인터페이스를 정의하는 DOM모듈(복수형)의 이름이어야 한다는 것이다.
eventType 전달인자 |
이벤트 인터페이스 |
초기화 메소드 |
HTMLEvents |
Event |
initEvent() |
MouseEvents |
MouseEvent |
initMouseEvent() |
UIEvents |
UIEvent |
initUIEvent() |
Document.createEvent() 메소드로 Event객체를 생성한 후에는 반드시 위 표에 있는 초기화 메소드를 이용해서 그 객체를 초기화 해야한다.
예제
구식방법
자바에서 영감을받아 작성한 구식이벤트 발생방법.
// Create the event. var event = document.createEvent('Event'); // Define that the event name is 'build'. event.initEvent('build', true, true); // Listen for the event. document.addEventListener('build', function (e) { // e.target matches document from above }, false); // target can be any Element or other EventTarget. document.dispatchEvent(event);
이벤트를 정의하는 굉장히 오래된 기법이다. 없어질 기법이라고 봐도 무방할것 같다.
참고
1. 자바스크립트 완벽가이드 별책 page.1010
2. 모질라 개발자네트워크
https://developer.mozilla.org/en-US/docs/Web/API/Document/createEvent