我在父页面上实现了一个mutationObserver,使用以下代码观察嵌入在其中的iframe:
function testMutation(){
console.log('test mutation called');
var element = document.getElementsByTagName('iframe')[0];
var config = {
attributes: true,
attributeOldValue: true,
characterData: true,
characterDataOldValue: true,
childList: true,
subtree: true
};
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation);
});}); observer.observe(element, config);
}
window.onload = testMutation();
通过MDN上的mutationObserver文档,我通过将config中的childList
属性设置为true来更改配置以监视子节点。
但是当实现此功能时,仅触发与iframe属性相对应的更改。在浏览具有各种节点的iframe内容时,mutationObserver不会获取节点更改。我错过了什么吗?
html标记:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Testing iframe navigation</title>
</head>
<body>
<style>iframe{width: 1px;min-width: 100%;}</style>
<div id="testString"><h1>Following is from iframe: </h1></div>
<iframe id="myIframe" src="http://127.0.0.1:8080" scrolling="no"></iframe>
</body>
</html>