javascript 동적 이벤트 코드 추가

방법 1.setAttribute var obj=document.getElementById("obj");obj.setAttribute("onclick","javascript:alert('테스트');");여기 서 setAttribute 를 이용 하여 onclick 속성 을 지정 합 니 다.간단 하고 이해 하기 쉽 습 니 다.그러나 IE 는 지원 하지 않 습 니 다.IE 는 setAttribute 라 는 함 수 를 지원 하지 않 는 것 이 아니 라 setAttribute 로 일부 속성 을 설정 하 는 것 을 지원 하지 않 습 니 다.대상 속성,집합 속성,이벤트 속성 을 포함 합 니 다.즉,setAttribute 로 style,onclick,onmouseover 이 속성 들 은 IE 에서 통 하지 않 습 니 다.방법 2.attachEvent 와 addEventListener IE 로 attachEvent obj.attachEvent("onclick",Foo)를 지원 합 니 다.function foo(){alert("테스트");}obj.attachEvent("onclick",function(){alert("테스트");})도 함께 쓸 수 있 습 니 다.다른 브 라 우 저 는 addEventListener obj.addEventListener("클릭",Foo,false)를 지원 합 니 다.function foo(){alert("테스트");}obj.addEventListener("click",function(){alert("테스트");},false); attachEvent 의 이벤트 테이프 on,예 를 들 어 onclick,addEventListener 는 on,예 를 들 어 click 를 가지 고 있 지 않 습 니 다.참고 로 addEventListener 의 세 번 째 인자(거의 사용 되 지 않 지만)useCapture-true 라면 useCapture 는 캡 처 를 시작 하 라 고 지시 합 니 다.캡 처 를 시작 하면 모든 지정 한 형식의 이 벤트 는 트 리 아래 에 있 는 이벤트 Targets 에 할당 되 기 전에 등 록 된 이벤트 Listener 에 지 시 됩 니 다.트 리 를 통 해 위로 버 블 링 하 는 이벤트 가 지정 한 캡 처 를 사용 하 는 EventListener 를 실행 하지 않 습 니 다.if(window.attachEvent){/IE 의 이벤트 코드}else{/다른 브 라 우 저의 이벤트 코드}방법 3.이벤트=함수 예:obj.onclick=Foo;이것 은 여러 브 라 우 저 에서 모두 지원 합 니 다.이것 은 오래된 규범(방법 2 는 DOM 2 의 규범 에 속 합 니 다)에 속 하지만 사용 하기에 편리 하기 때문에 사용 하 는 장소 도 비교적 많 습 니 다.다음은 나의 해결 방법:function show(){alert("Hello,world!!!");}obj.setAttribute('onclick',document.all ? eval(function(){show()}) : 'javascript:show()'); 보기 에는 간단 하고 브 라 우 저 도 호 환 됩 니 다.다른 영향 이 있 는 지 모 르 겠 거나 더 좋 은 방법 으로 대체 할 수 있 습 니까?

좋은 웹페이지 즐겨찾기