2009-08-30 6 views
0

웹 페이지에서 발생하는 모든 이벤트에 대한 알림을 받고 싶습니다. 각 하나의 이벤트에 대한웹 페이지의 모든 이벤트를 처리하는 방법

나는이 같은 것을 사용하고 있습니다 :

if(document.addEventListener){ 
    document.addEventListener('click', function(e) { something(e) } , true); 
}else{ 
    if(document.attachEvent){ 
     document.attachEvent('onclick', function(e) { something(e) }); 
    } 
} 

거기 간단한 크로스 브라우저 방식은 사용하지 않고 (대신 개별적으로 각각의 이벤트를 수신의 웹 페이지에 대한 모든 이벤트를 통보받을 수 있습니다 jQuery)?

+0

내가 아는 모든 이벤트에 대한 메타 청취자가 없습니다 통지 호출하는 다른 함수 내에서 인수로 전달 된 함수를 호출합니다. – Glenn

답변

1

시도는 모든 동작을

function addEvent(ev,fun){ 
    var hand=function(e){ 
    alert(ev+" event"); //Or other notify operations 
    fun(); 
    } 
    if(document.addEventListener){ 
     document.addEventListener(ev, hand, true); 
    }else{ 
     if(document.attachEvent){ 
      document.attachEvent(ev, hand); 
     } 
    } 
} 
1

모두 이벤트가 발생 했습니까? 나는 심각하게 당신이 사건 버블 링과 얼마나 많은 소리의 onmousemove가 생산 될지 고려하는 것을 의심합니다.

당신이 실제로 신경 써야 할 부분에 개별적으로 허용 된 화이트리스트가 붙어 있습니다.

+0

나는 모든 이벤트를 원합니다. 나는 그 문제를 혼자서 다룰 것이다. – Niyaz

2

HTML 문서의 태그를 검색하여 이벤트 속성을 찾는 JavaScript 애플리케이션을 작성하십시오. 그런 다음 원하는 방식으로 이벤트를 분석 할 수 있습니다. 출력은 현재 페이지에 기록되거나 xmlHttpRequest 객체를 사용하여 다른 문서에 기록 될 수 있습니다.

+0

기본적으로 이것이 해결책입니다. 그러나 당신은 그것을한다. DOM 트리를 이동하고 각 요소에 대해 각 이벤트에 캡처 함수를 추가하십시오. 캡처 함수는 기존 핸들러를 입력으로 가져 와서 기존 리스너도 호출 할 수 있습니다. – Glenn

관련 문제