Рекомендуется использовать
Mutation Observer вместо
Mutation Events (выделено жёлтым). Подробнее
почитать тут.
Помимо асинхронности и возможностей больше, и нагрузка ниже.
JS(function () {
try {
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
for (var i = mutation.addedNodes.length; i--;) {
addedControl(mutation.addedNodes[i]);
}
});
});
document.addEventListener('DOMContentLoaded', function (e) {
observer.observe(document.body, {
childList: true
});
}, false);
} catch (z) {
document.addEventListener('DOMNodeInserted', function (e) {
addedControl(e.target);
}, false);
}
function addedControl (target) {
console.log(target);
}
})();
document.addEventListener('click', function (e) {
if (e.target.tagName == 'BUTTON') {
document.body.appendChild(document.createElement('iframe'));
}
}, false);
HTML<button type="button">Добавить</button>