I've been looking over the docs at developer.mozilla.org and the Apple dev docs but I'm not able to find documentation that explains whether or not you can programatically determine if a specific HTML tag supports a given eventListener.
Like I know that the <script>
tag isn't going to support the click listener since there's nothing to click on, but how do I know that?
Or barring that, is there an easy reference somewhere of what events each tag supports?
Outside of a few edge cases, yes you can, according to Perfection Kills:
The trick is that many modern browsers report property corresponding to an event name as being existent in an element.
Basically, the code looks like this:
'onclick' in document.documentElement; // true
'onclick2' in document.documentElement; // false
He uses it to detect event support in various browsers, but it could also be used to detect whether or not an element supports an event:
An event must be checked on an element that could actually originate that event.
So you also get results like this:
'onreset' in document.documentElement; // false
'onreset' in document.createElement('input'); // true
i tell you to read this
...and the best thing you must think is that events are only for DOM objects . Then all objects in DOM , could have events (But read the list).