2 回答
TA贡献1844条经验 获得超8个赞
您可以使用 MutationObserver 来监视页面上 DOM 的更改。
如果您需要与旧版浏览器保持兼容,请使用单击事件来触发您自己的手动观察器。就像是:
var interval_id = false;
function lookForPopup(){
if(interval_id){
clearInterval(interval_id);
}else{
interval_id = setInterval(function(){
var popup = document.getElementById('some-id');
if(popup){
// do something
clearInterval(interval_id);
}
},1000);
}
}
TA贡献1851条经验 获得超4个赞
我如何使用MutationObserver解决此问题。
MutationObserver has an ability to watch for changes being made to the DOM tree.
I mention the code below how it fixed my issue/requirement.
// selecting the href by id and triggering a click event.
let hrefDoc = document.getElementById("ember");
divDoc.click();
let m = new MutationObserver(() => {
let divDoc = document.getElementById("ember");
new MutationObserver( () => {
// Finally Extracting the required data
console.log(document.getElementById("pv-contact-info").innerText);
}
}).observe(divDoc || document,observerOptions);
});
m.observe(hrefDoc,observerOptions);
正如您在上面看到的,我添加了另一个子 MutationObserver 来观察 divDoc 元素。这是因为当 hrefDoc 点击事件时,父级 MutationObserver 回调会通过一些观察者选项被调用。但在这种情况下,我无法获取我的 <div id="ember"> 突变节点。
这就是我添加另一个此语句let divDoc = document.getElementById("ember");并在子级中等待此 targetNode MutationObserver的原因。最后我从这个标签中提取了数据<h1 id="pv-contact-info">
- 2 回答
- 0 关注
- 104 浏览
添加回答
举报