Мне нужно прослушивать изменения внутри тега iframe. Главная страница не изменяется, только содержимое iframe.Слушать изменения DOM внутри iframe
Страницы Iframe имеют форму, когда некоторые кнопки типа submit нажимают на форму, вызывают действие и изменяют страницу только внутри iframe.
Я исследую следующий, но работает только с главной страницей документа, только основной документ прослушивает изменения DOM, но не внутри iframe.
function listener()
{
console.debug("listener fired.");
}
document.addEventListener('DOMSubtreeModified', function() {
var iframes = document.getElementsByTagName("iframe");
for (var i = 0, len = iframes.length, doc; i < len; ++i) {
// Catch and ignore errors caused by iframes from other domains
console.log(i);
try {
doc = iframes[i].contentDocument || iframes[i].contentWindow.document;
//console.log(doc);
doc.addEventListener("DOMSubtreeModified", listener, true);
} catch (ex) { console.log(ex); }
}
},false);
так что же происходит? У вас есть доступ в iframe? – charlietfl
У меня нет доступа на страницах iframe, потому что они скомпилированы .aspx-страницами, поэтому мне нужно сделать это с помощью chrome-расширений. – pinguik
Я думаю, что единственный выбор - вставить элемент сценария кодом, который обнаруживает изменения * в * iframe. См. [Создание расширения Chrome - ввод кода на странице с использованием сценария содержимого] (https://stackoverflow.com/q/9515704), а BTW не используют 'DOMSubtreeModified', он устарел в течение нескольких лет из-за медленности. Используйте [MutationObserver] (https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) или проверку по таймеру; – wOxxOm