每当在当前窗口中创建新的iframe时,我都想调用特定的方法。这是youtube iframe播放器,无论何时在当前窗口中创建或启用它,我都需要收听新的iframe。有可能做这样的事情吗?请让我知道是否有任何方法。我尝试了以下代码,但是该代码无法检测到动态创建的新iframe。我在Google中尝试过,但没有任何信息
const iframes = document.getElementsByTagName('iframe');
forEach(iframes, (iframe) => {
addEventListeners(iframe);
}
}
});
您可以使用MutationObserver
。它使您可以监听DOM的变异;就像您在dom本身上设置事件监听器一样,并在将iFrame添加到它时监听:
(new MutationObserver(mutations => {
mutations[0].addedNodes.forEach(node => {
if (node.tagName.toLowerCase() === 'iframe') {
//do stuff
}
});
})).observe(document.body, {childList: true});
在这里,我们正在侦听document.body
,而我们仅侦听对其子节点的更改(添加或删除了一个节点)。在forEach
通过如果一个每个添加的节点(如果有的话),并检查进入iFrame
。如果是这样,那么请在“要做的事情”行中做您需要做的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句