我的JavaScript如何检测事件是否可用?
我知道一些很棒的event-compatibility tables,但我需要使用功能检测,而不是浏览器嗅探和查找表。
具体来说,我的JS充分利用了DOM突变事件(DOMNodeInserted
和DOMSubtreeModified
) - 除了(当然)Internet Explorer之外,它在所有浏览器中都很有效。
那么,我如何检测浏览器是否支持DOMNodeInserted
?
答案 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/