功能检测:JavaScript中的突变事件可用性?

时间:2011-02-03 02:56:50

标签: javascript javascript-events cross-browser feature-detection mutation-events

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

我知道一些很棒的event-compatibility tables,但我需要使用功能检测,而不是浏览器嗅探和查找表。

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

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

3 个答案:

答案 0 :(得分:8)

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

var hasMutationEvents = ("MutationEvent" in window);

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

要在另一个浏览器中运行browserscope测试,请转到此处: http://jsbin.com/aqeton/4/

答案 1 :(得分:4)

这个问题已经很老了,但是如果其他人偶然发现它,在这个答案中解释了检测突变事件的解决方案: How to check browser support for capabilities / events?

从那个答案:

  

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

     

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

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

答案 2 :(得分:2)

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

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