我正在建立一個 chrome 擴展,我想向此電報頁面附加一些元素,似乎只成功附加了文本,而不是整個 HTML。
const span = document.createElement("span"); span.innerHTML = '<span class="xxx">Foo,bar</span>'; const p = document.querySelector("p"); p.appendChild(span);
正如評論中所建議的那樣,我驗證了自己,實際上有一個MutationObserver 當某些程式碼試圖在文件樹中的某個點改變某些內容時,它會即時更改dom。
MutationObserver
因為沒有標準方法來尋找在dom 上監聽的即時MutationObservers 實例(如果有的話),除非您可以努力尋找儲存該物件的變數在哪個範圍內;最快的方法是用它的複製取代body元素,所有MutationObserver 都會消失。
document.body = document.body.cloneNode(true);
完成此操作後,當您嘗試將元素附加到 dom 時,它將按預期進行相應更改,而不會受到干擾。
在尋找如何取得即時 MutationObserver 實例或解決該需求的工作方法是什麼時,在 Stack Overflow 答案中找到了最後的線索?
是有沒有辦法從專案中刪除所有的mutationObservers而不引用它?
正如評論中所建議的那樣,我驗證了自己,實際上有一個
MutationObserver
當某些程式碼試圖在文件樹中的某個點改變某些內容時,它會即時更改dom。因為沒有標準方法來尋找在dom 上監聽的即時MutationObservers 實例(如果有的話),除非您可以努力尋找儲存該物件的變數在哪個範圍內;最快的方法是用它的複製取代body元素,所有MutationObserver 都會消失。
完成此操作後,當您嘗試將元素附加到 dom 時,它將按預期進行相應更改,而不會受到干擾。
平心而論...
在尋找如何取得即時 MutationObserver 實例或解決該需求的工作方法是什麼時,在 Stack Overflow 答案中找到了最後的線索?
是有沒有辦法從專案中刪除所有的mutationObservers而不引用它?