Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you programmatically determine to which events an HTML object can listen for?

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?

like image 605
tkone Avatar asked Oct 05 '11 20:10

tkone


1 Answers

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
like image 163
sdleihssirhc Avatar answered Nov 14 '22 22:11

sdleihssirhc