How can my JavaScript detect if an event is available?
I'm aware of some great event-compatibility tables, but I need to use feature detection, not browser-sniffing plus a lookup table.
Specifically, my JS makes great use of the DOM mutation events (DOMNodeInserted
and DOMSubtreeModified
) -- which work great in all browsers except (of course) Internet Explorer.
So, how would I detect if a browser supports DOMNodeInserted
?
This question is quite old, but in case anyone else stumbles upon it, a solution for detecting mutation events is explained in this answer: How to check browser support for capabilities / events?
From that answer:
For normal events, use the perfectionkills article in takteek's answer. This still doesn't seem to support sniffing of some new HTML5 events, like "input".
If you just want to check if the browser supports mutation events in general, you can use this simple test:
Here are the results from a bunch of popular browsers: http://www.browserscope.org/browse?category=usertest_agt1YS1wcm9maWxlcnINCxIEVGVzdBjEkNAPDA
To run the browserscope test in another browser go here: http://jsbin.com/aqeton/4/
I looked around on google a bit. This looks like it's probably what you want:
http://perfectionkills.com/detecting-event-support-without-browser-sniffing/