2017-09-11 66 views
2

无论何时在当前窗口中创建新的iframe,我都想调用特定的方法。无论何时在当前窗口中创建或启用iframe,都需要监听iframe播放器。是否有可能做这样的事情?请让我知道是否有任何方法。我已经尝试了下面的代码,但此代码不会检测到动态创建的新iframe。我在谷歌尝试,但没有得到任何信息如何添加一个事件侦听器,触发器将某个类型的元素添加到DOM?

const iframes = document.getElementsByTagName('iframe'); 
    forEach(iframes, (iframe) => { 
     addEventListeners(iframe); 

     } 
    } 
    }); 
+0

在这里添加一些代码。这不是问非常普遍的问题的地方。做一些谷歌研究,然后尝试,然后张贴你在这里尝试的代码。 – JGallardo

回答

1

您可以使用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。如果是这样,那么在“do stuff”行中做你需要做的事情。

相关问题