How do you programmatically determine to which eve

2019-06-17 04:51发布

问题:

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?

回答1:

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


回答2:

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