首页 > 解决方案 > 有什么方法可以监听附加到文档的文档片段?

问题描述

我有一个程序可以将一些标记放入文档片段中,然后可以将其附加到文档中。我希望在附加代码后执行一些代码,就像connectedCallback自定义元素的工作方式一样。这可能吗?

将文档片段附加到文档会清空它,这意味着我可能会使用突变观察器,但是如果有人在附加之前对其进行了修改,那么代码就会执行,这不是我想要的行为。

标签: javascripthtmldom

解决方案


除非有人出现并证明我错了,否则我将假设不可能创建在片段附加到文档时触发的人。然而,这将在片段附加到文档时激活,并且唯一会激活它的其他事情是如果片段的所有子节点都已被删除,这似乎是可以避免的。

const frag = document.createDocumentFragment();
frag.textContent = `I'm a document fragment`;
new MutationObserver(records => {
  if (!records[0].target.childNodes.length)
    console.log(`I've been attached!`); 
}).observe(frag, {childList: true});
<button onclick='this.after(frag)'>Attach Fragment</button>


推荐阅读