有没有办法检测 DOM 节点何时要从 DOM 中删除?

Posted

技术标签:

【中文标题】有没有办法检测 DOM 节点何时要从 DOM 中删除?【英文标题】:Is there a way to detect when a DOM node is about to be removed from the DOM? 【发布时间】:2017-09-14 16:46:54 【问题描述】:

IE。类似onBeforeNodeRemoved

我目前正在使用变异观察者,此时节点似乎已被删除。

编辑: 用例是 AngularJS 1.x 应用程序正在被 AngularJS 未知代码从 DOM 中删除,我想检测 DOM 节点删除并调用 rootScope.$destroy .

【问题讨论】:

您可以包装您的删除功能并调用自定义事件。我认为您通过 jQuery remove 删除元素 - 所以,包装那个,或扩展 htmldomelement 原型。 用例是什么?如果你解释你想要做什么,可能会有其他方法。 修改问题。 也许与 MutationObserver developer.mozilla.org/en-US/docs/Web/API/MutationObserver 【参考方案1】:

如果我正确阅读了您的问题,听起来您是在说,当您将突变观察器到位时,您尝试观察的节点已经被删除。所以你永远无法观察到它。

如果是这种情况,请让您的突变观察者进入页面并在其他任何事情之前进行设置。这是我能看到你能够观察到发生的“一切”的唯一方法。

【讨论】:

以上是关于有没有办法检测 DOM 节点何时要从 DOM 中删除?的主要内容,如果未能解决你的问题,请参考以下文章

你能检测到 dom 节点的样式何时设置为“自动”吗?

shadow dom - 知道 dom 何时渲染/更改

AJAX 加载的 DOM 节点何时“准备好”?

如何检测 DOM 节点插入? [复制]

MutationObserver 在整个 DOM 中检测节点的性能

Refs & DOM