How to track DOM change in chrome extension?

前端 未结 2 1598
别跟我提以往
别跟我提以往 2020-12-31 01:06

I am writing a chrome extension where I want to fetch all the images exist on a page but some of the images load after some time (may be through ajax) which I could not fetc

相关标签:
2条回答
  • 2020-12-31 01:53

    You can use document.addEventListener with the DOMNodeInserted event. Your callback will have to check each node insertion to see if it is the type of node you are looking for. Something like the following should work.

    function nodeInsertedCallback(event) {
        console.log(event);
    };
    document.addEventListener('DOMNodeInserted', nodeInsertedCallback);
    
    0 讨论(0)
  • 2020-12-31 02:07

    Updated for 2020:

    The recommended way nowadays is to use the Mutation Observer API.

     let observer = new MutationObserver(mutations => {
        for(let mutation of mutations) {
             for(let addedNode of mutation.addedNodes) {
                 if (addedNode.nodeName === "IMG") {
                     console.log("Inserted image", addedNode);
                  }
              }
         }
     });
     observer.observe(document, { childList: true, subtree: true });
    
    0 讨论(0)
提交回复
热议问题