代码之家  ›  专栏  ›  技术社区  ›  naveen

我如何添加一个事件监听器,在向DOM添加某种类型的元素时触发它?

  •  2
  • naveen  · 技术社区  · 7 年前

    const iframes = document.getElementsByTagName('iframe');
      forEach(iframes, (iframe) => {
            addEventListeners(iframe);
    
          }
        }
      });
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   chiliNUT    7 年前

    你可以使用 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