过去,我们使用浏览器嗅探来推断某些事件或功能是否可用。我了解浏览器嗅探已被“弃用”或“回避”以支持功能嗅探。我想知道如何检查是否可以处理某个事件。
举个DOMNodeInserted
例子。Chrome、FF 和 Safari 支持它,但 IE 不支持。如果此事件可用,我如何嗅探?有图书馆吗?你们如何进行正确的特征嗅探?
过去,我们使用浏览器嗅探来推断某些事件或功能是否可用。我了解浏览器嗅探已被“弃用”或“回避”以支持功能嗅探。我想知道如何检查是否可以处理某个事件。
举个DOMNodeInserted
例子。Chrome、FF 和 Safari 支持它,但 IE 不支持。如果此事件可用,我如何嗅探?有图书馆吗?你们如何进行正确的特征嗅探?
您无法检测到突变事件,而modernizr 对此不起作用(因为人们会将其作为事实上的答案吐出)。
“检测”对突变事件的支持的唯一方法是尝试触发该事件。伪代码:
var div = document.createElement('div'), supported = false;
div.addEventListener('DOMNodeInserted', function(){ supported = true; });
div.appendChild(div.cloneNode(true));
请注意,如果是线性代码,上述代码将无法按原样工作,因为事件侦听器是异步的。然而,一般的想法是有效的,也许最好用回调来实现。
为了回答通用问题——我如何进行特征嗅探——我使用了jQuery.support对象。