0
我需要監聽iframe標籤內的更改。主頁面不會更改,只有iframe內容。在iframe中監聽DOM更改
Iframe頁面有形式,當某些按鈕類型提交時單擊窗體調用動作並僅在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);
那麼會發生什麼?你有訪問內部框架? – 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