8

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?

tkone
  • 22,092
  • 5
  • 54
  • 78

2 Answers2

5

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
sdleihssirhc
  • 42,000
  • 6
  • 53
  • 67
  • 1
    Maybe this won't do *exactly* what you want, since `'onclick' in document.createElement('script')` returns true. But that just means that if you give a ` – sdleihssirhc Oct 05 '11 at 20:55
0

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).

A.Quiroga
  • 5,704
  • 6
  • 37
  • 58