Как отловить создание нового IFrame на странице?
Рекомендуется использовать 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>
Рекомендуется использовать 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>