2012-01-06 5 views
1

Dojo에서 UI 이벤트를 처리 할 때마다 제 3 자 함수를 등록하거나 Dojo 코드 기반을 수정하여 함수를 호출 할 수 있습니까? 즉, Dojo가 이벤트를 처리 할 때마다 자체 함수가 호출되도록하고 싶습니다. 페이지의 모든 사용자 활동을 추적 할 수 있도록 이벤트 객체를 내 함수로 전달해야합니다. dojo.doc - - 'UI 이벤트'에 의해 당신이 DOM 이벤트를 의미하는 경우 감사 제리Dojo UI 이벤트 추적

+0

1.7 또는 이후 버전에서'dojo.connect' (또는'dojo.on')를 사용하여 핸들러를 위젯에서 발생한 DOM 이벤트 또는 Dojo 이벤트로 연결할 수 있습니다. 또한 각 위젯에는 속성 변경을 추적하는 "watch"핸들러를 추가 할 수있는'watch' 함수가 있습니다. 또는 최후의 수단으로 개체 자체에서 이벤트 함수를 "도용"합니다. Dojo 소스를 수정해야 할 필요는 없다. –

+0

이 질문을하고 Dojo 소스 수정이 필요하다고 생각한다는 사실은 C와 유사한 언어 (예 : C# 또는 Java)로 JavaScript를 처음 사용한다는 것을 나타냅니다. 라이브러리 소스를 수정하지 않으면 다른 언어로는 어려울 표준 JavaScript로 많은 aspect 지향 프로그래밍 기법이 가능합니다. –

+0

귀하의 의견을 주셔서 감사하지만 내가 코드베이스를 수정해야한다고 생각하는 이유는 아래 내 의견에 설명되어 있습니다. – Jerry

답변

0

당신은 창 문서 객체를들을 수있는 이벤트 버블로 (한 기포가 예, 중단되지 않는 dojo.stopEvent(event)에 의해) :

dojo.connect(dojo.doc, "onclick", function(event) { 
    console.log(event); 
}); 

터치하면 jsFiddle이됩니다.

양식 요소를 관찰하려면 dojox.form.Manager Tutorial을 고려하는 것이 좋습니다.

+0

모든 응답을 주셔서 감사합니다. dojo.connect 접근 방식을 사용하는 것이 첫 번째 시도 였지만 dojo.stopEvent를 사용하여 이벤트의 버블 링을 중지 할 수 있으므로 내 추적 코드에서 놓친 이벤트가 발생하게됩니다. 누락 된 이벤트가 없기 때문에 내가 생각할 수있는 유일한 해결책은 추적 기능 호출을 Dojo 이벤트 처리 프로세스 내에 넣는 것입니다. 그래서 올바른 방향으로 나를 가리킬 수있는 누군가가 내 추적 함수 호출을 넣을 수있는 도조 코드베이스를 살펴보기 시작했다. 모든 시간 내 주셔서 다시 한 번 감사드립니다. – Jerry

+0

어떤 트릭을 사용할 지 알아 보려면 google '웹 사이트 히트 맵'을 사용해보십시오. 나는 소스 코드를 연구하는 오픈 소스 프로젝트가 있다고 확신한다. – phusick