javascript - ejemplos - ¿Cómo se determina programáticamente a qué eventos puede escuchar un objeto HTML?
innerhtml (2)
He estado revisando los documentos en developer.mozilla.org y los documentos de desarrollo de Apple, pero no puedo encontrar documentación que explique si se puede o no determinar mediante programación si una etiqueta HTML específica es compatible con un eventListener determinado.
Como si supiera que la etiqueta <script>
no admitirá el oyente de clics ya que no hay nada sobre lo que hacer clic, pero ¿cómo puedo saberlo?
O, salvo eso, ¿hay alguna referencia fácil en algún lugar sobre los eventos que admite cada etiqueta?
Fuera de unos pocos casos extremos, sí se puede, según Perfection Kills :
El truco es que muchos navegadores modernos informan que la propiedad correspondiente a un nombre de evento existe en un elemento.
Básicamente, el código se ve así:
''onclick'' in document.documentElement; // true
''onclick2'' in document.documentElement; // false
Lo usa para detectar soporte de eventos en varios navegadores, pero también se puede usar para detectar si un elemento admite un evento o no:
Se debe verificar un evento en un elemento que realmente podría originar ese evento.
Entonces también obtienes resultados como este:
''onreset'' in document.documentElement; // false
''onreset'' in document.createElement(''input''); // true
Te digo que leas esto
... y lo mejor que debes pensar es que los eventos son solo para objetos DOM. Entonces todos los objetos en DOM, podrían tener eventos (Pero lea la lista).