2017-09-11 70 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」行中做你需要做的事情。

相關問題