3

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

举个DOMNodeInserted例子。Chrome、FF 和 Safari 支持它,但 IE 不支持。如果此事件可用,我如何嗅探?有图书馆吗?你们如何进行正确的特征嗅探?

4

3 回答 3

6

您无法检测到突变事件,而modernizr 对此不起作用(因为人们会将其作为事实上的答案吐出)。

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

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

请注意,如果是线性代码,上述代码将无法按原样工作,因为事件侦听器是异步的。然而,一般的想法是有效的,也许最好用回调来实现。

于 2011-04-19T07:59:59.237 回答
2

结帐http://www.modernizr.com

于 2011-04-19T07:56:06.387 回答
-1

为了回答通用问题——我如何进行特征嗅探——我使用了jQuery.support对象。

于 2011-04-19T09:25:01.770 回答