如何检查浏览器对function/事件的支持?

在过去,我们使用浏览器嗅探来推断某些事件或function是否可用。 我知道浏览器嗅探已被“弃用”或“避开”,以支持function嗅探。 我想知道如何检查是否可以处理某个事件。

DOMNodeInserted为例。 它受Chrome,FF和Safari的支持,但不受IE支持。 如果此活动可用,我该如何嗅闻? 有图书馆吗? 你们怎么做适当的function嗅探?

你无法检测到突变事件,而现代化也无法解决这个问题(因为人们会把它作为事实答案吐出来)。

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

 var div = document.createElement('div'), supported = false; div.addEventListener('DOMNodeInserted', function(){ supported = true; }); div.appendChild(div.cloneNode(true)); 

请注意,如果上面的代码是线性代码,则它不会按原样运行,因为事件侦听器是异步的。 但是,一般的想法是有效的,也许最好用回调来实现。

结帐http://www.modernizr.com

要回答通用 – 如何进行function嗅探 – 我使用jQuery.support对象。