简体   繁体   中英

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?

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM