2011-10-05 5 views
8

developer.mozilla.org 및 Apple dev 문서의 문서를 검토했지만 특정 HTML 태그가 지정된 eventListener를 지원하는지 프로그래밍 방식으로 결정할 수 있는지 여부를 설명하는 설명서를 찾을 수 없습니다.HTML 개체가 수신 대기하는 이벤트를 프로그래밍 방식으로 어떻게 결정합니까?

마찬가지로 나는 <script> 태그가 클릭 할 내용이 없기 때문에 클릭 수신기를 지원하지 않을 것임을 알고 있지만 어떻게 알 수 있습니까?

각 태그가 지원하는 이벤트의 어딘가에서 쉽게 참조 할 수 있습니까? 몇 가장자리 경우

답변

5

외부, 그래 당신은 Perfection Kills에 따라 할 수 있습니다

트릭 많은 최신 브라우저가 요소에 존재하는 것으로 이벤트 이름에 해당하는 속성을보고 있다는 것입니다. 그는 다양한 브라우저에서 이벤트 지원을 감지하는 데 사용

'onclick' in document.documentElement; // true 
'onclick2' in document.documentElement; // false 

, 그러나 또한 요소가 이벤트를 지원하는지 여부를 감지하는 데 사용할 수 있습니다 :

기본적으로, 코드는 다음과 같습니다

이벤트는 실제로 해당 이벤트를 시작할 수있는 요소에서 검사해야합니다. 이 같은

그래서 당신은 또한 얻을 결과 :

'onreset' in document.documentElement; // false 
'onreset' in document.createElement('input'); // true 
+1

아마도 document.createElement ('script')의' 'onclick'이 true를 반환하기 때문에 * 원하는 * 정확하게 * 수행 할 수 없습니다. 그러나 이것은'

0

내가 this

을 읽는 당신에게 ... 그리고 당신이 생각해야하는 가장 좋은 방법은 이벤트 만 DOM 개체에 대한 점이다. 그런 다음 DOM의 모든 객체에 이벤트가있을 수 있습니다 (그러나 목록 읽기).

관련 문제