簡體   English   中英

如何使用MutationObserver獲取導致DOM突變的函數?

[英]How to get the function which caused a DOM mutation with a MutationObserver?

我目前正在嘗試找出哪個函數使用MutationObserver修改了DOM。 不幸的是,以下代碼段不起作用(堆棧跟蹤似乎為空)。

var targetNode = document.body;
var config = { attributes: true, childList: true, subtree: true };
var callback = function(mutationsList, observer) {
    for(var mutation of mutationsList) {
      // The trace unfortunatelly doesn't contain the function 
      // "addSomeElement", which I am trying to receive at this point.
      console.trace(); 
    }
};

var observer = new MutationObserver(callback);
observer.observe(targetNode, config);

接下來是一些DOM突變:

function addSomeElement() {
  targetNode.appendChild(document.createElement('span'));
}
addSomeElement();

有什么辦法可以輸出實際發生突變的函數(在本例中為appendChild )?

使用DOM斷點(應在Chrome和Firefox中工作)

開發者工具
->檢查員
->右鍵單擊要監視的元素
->中斷:子樹修改

更改所選節點的子元素后,瀏覽器將在負責的JavaScript上中斷。

添加DOM斷點

你不能

MutationObserver返回MutationRecord ,該記錄僅描述更改本身。

它沒有提供有關這些更改是如何實現的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM