8

我的 JavaScript 如何检测事件是否可用?

我知道一些很棒的事件兼容性表,但我需要使用功能检测,而不是浏览器嗅探和查找表。

具体来说,我的 JS 充分利用了 DOM 突变事件 (DOMNodeInsertedDOMSubtreeModified)——它在除(当然)Internet Explorer 之外的所有浏览器中都运行良好。

那么,我将如何检测浏览器是否支持DOMNodeInserted

4

3 回答 3

8

如果你只是想检查浏览器是否支持突变事件,你可以使用这个简单的测试:

var hasMutationEvents = ("MutationEvent" in window);

以下是一些流行浏览器的结果: http ://www.browserscope.org/browse?category=usertest_agt1YS1wcm9maWxlcnINCxIEVGVzdBjEkNAPDA

To run the browserscope test in another browser go here: http://jsbin.com/aqeton/4/

于 2012-03-21T20:25:37.020 回答
4

这个问题已经很老了,但如果其他人偶然发现它,这个答案中解释了检测突变事件的解决方案: 如何检查浏览器对功能/事件的支持?

从那个答案:

您无法检测到突变事件,并且modernizr 不适用于此...

“检测”对突变事件的支持的唯一方法是尝试触发该事件。

对于正常事件,请使用 takteek 答案中的完美杀戮文章。这似乎仍然不支持嗅探一些新的 HTML5 事件,例如“输入”。

于 2011-06-05T23:06:01.020 回答
2

我在谷歌上环顾了一下。这看起来可能是您想要的:

http://perfectkills.com/detecting-event-support-without-browser-sniffing/

于 2011-02-03T03:02:14.707 回答