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

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

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

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

Ответ 1

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

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

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

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

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

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

Итак, вы также получаете такие результаты:

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

Ответ 2

скажу вам читать this

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