过去我们使用浏览器嗅探来推断特定事件或功能是否可用。我了解到浏览器嗅探已被“弃用”或“避免”,而特性嗅探更加受欢迎。我想知道如何检查某个事件是否可处理。
以
以
DOMNodeInserted
为例。它在Chrome、FF和Safari中得到支持,但不支持IE。我该如何嗅探这个事件是否可用?是否有相应的库存在?你们如何进行正确的特性嗅探?
var div = document.createElement('div'), a = "sync"; div.addEventListener('DOMNodeInserted', function(){ console.log("Inserted " + a); }, false); div.appendChild(document.createElement("br")); a = "async";
另外,你的代码在WebKit中无法工作:似乎需要将div添加到文档中才能触发事件。 - Tim DownTimeout
或其他什么东西吗? - Kees C. BakkerDOMAttrModified
功能测试的例子,不幸的是它依赖于同步触发事件:https://github.com/dperini/nwevents/blob/ac33e52c1ed1c1c3a1bb1612384ca5b2f7a9b3ef/src/nwmatcher.js#L92 我从这篇文章中获取了它:http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ - Tim Down