event

addEvent, removeEvent (via QuirksMode)

이벤트를 자유롭게 추가, 삭제 하는 함수, window.onload와 같이 이벤트 함수 설정이 여러번 중복될 가능성이 있을 경우 유용하게 사용할 수 있다. addEventListener는 W3C의 DOM표준, attachEvent는 MS JScript의 구현이다. attachEvent의 구현은 QuriksMode의 또 다른 글 addEvent() considered harmful을 참조

function addEvent(obj, type, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(type, fn, false);
	} else if (obj.attachEvent) {
		obj["e" + type + fn] = fn;
		obj[type + fn] = function() {
			obj["e" + type + fn](window.event);
		}
		obj.attachEvent("on" + type, obj[type + fn]);
	}
}

function removeEvent(obj, type, fn) {
	if (obj.removeEventListener) {
		obj.removeEventListener(type, fn, false);
	} else if (obj.detachEvent) {
		obj.detachEvent("on" + type, obj[type + fn]);
		obj[type + fn] = null;
		obj["e" + type + fn] = null;
	}
}