Chrome扩展程序是否可以侦听尚未创建的元素的外观?
说用户点击一个按钮,点击事件创建一个元素< div id ='myDiv'> My Div< / div>并将其添加到页面/ DOM.是否可以设置一个侦听器,当该元素出现时会自动触发事件?
或者我必须诉诸于轮询该页面并检查这个元素每X个毫秒数?
jQuery和其他库不是我的选择btw.
解决方法
新的
DOM4 MutationObserver可以做到这一点.我不认为它得到广泛的支持,但幸运的是,它是Chrome支持的,作为WebKitMutationObserver.
var observer = new WebKitMutationObserver(function(mutations) { mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { if(mutation.addedNodes[i].id == "myDiv") { // target node added,respond now... } } }); }); observer.observe(document,{ subtree: true });
如果您可以将observer.observe中的听力缩小到比文档更具体的元素,那将给您一些性能提升.