有没有办法监听附加到文档的文档片段?

时间:2019-11-26 03:46:55

标签: javascript html dom

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

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

1 个答案:

答案 0 :(得分:1)

除非有人来证明我错了,否则我将假定不可能创建仅在片段附加到文档时会触发触发的人员。但是,当将片段附加到文档时,此功能将激活,而将其激活的另一件事是,如果所有片段的子节点都已被删除,这似乎是可以避免的。

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>