Как программно определить, какие события может прослушивать HTML-объект? - PullRequest
8 голосов
/ 06 октября 2011

Я просматривал документы на developer.mozilla.org и в документах для разработчиков Apple, но не могу найти документацию, в которой объясняется, можно ли программно определить, поддерживает ли определенный тег HTML данный eventListener.

Как я знаю, тег <script> не будет поддерживать прослушиватель щелчков, так как щелкать нечего, но как мне это узнать?

Или, если это запретить, естьлегкая ссылка где-нибудь о том, какие события поддерживает каждый тег?

Ответы [ 2 ]

5 голосов
/ 06 октября 2011

За исключением нескольких крайних случаев, да, вы можете, согласно Perfection Kills :

Хитрость заключается в том, что многие современные браузеры сообщают, что свойство, соответствующее имени события, имеет видсуществует в элементе.

По сути, код выглядит следующим образом:

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

Он использует его для обнаружения поддержки событий в различных браузерах, но может также использоваться для обнаруженияподдерживает ли элемент событие:

Событие должно быть проверено на элементе, который может на самом деле инициировать это событие.

Таким образом, вы также получите результаты, подобные этому:

'onreset' in document.documentElement; // false
'onreset' in document.createElement('input'); // true
0 голосов
/ 06 октября 2011

Я говорю вам, чтобы прочитать это

... и лучшее, что вы должны подумать, это то, что события предназначены только для объектов DOM. Тогда все объекты в DOM могут иметь события (но прочитать список).

...