javascript - 如何检查浏览器对功能/事件的支持?

标签 javascript jquery mutation-events

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

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

最佳答案

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

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

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

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

关于javascript - 如何检查浏览器对功能/事件的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5713220/

相关文章:

javascript - chrome 浏览器 toLocaleString() 的替代方案

javascript - 获取 Angular 2 中的系统时间更改事件

jquery - 如果使用 jquery 在 div 标签内的 span 元素为空,则隐藏元素

javascript - 使用 JQuery 将数组中的类应用于重复项

javascript - 监听 contenteditable HTML 元素的事件

javascript - 为什么这个变量在 Javascript 中表现得像一个指针? (使用 HTML5 Canvas )

javascript - PhoneGap Ajax 请求在使用 AT&T 数据时返回 502(错误的网关),但不使用 WiFi

jquery - Ajax 请求返回 0x80004005 (NS_ERROR_FAILURE)

javascript - DOM Mutation Observers 是否比 DOM Mutation Events 慢?

javascript - DOMNodeInsertedIntoDocument 应该冒泡吗?