为了账号安全,请及时绑定邮箱和手机立即绑定

MutationObserver 即使从未被调用也会监听

MutationObserver 即使从未被调用也会监听

鸿蒙传说 2023-02-24 16:22:48
我正在编写一个外部脚本。我需要在每 30 秒清除一次的部分中添加一些元素。所以我绑定了MutationObserver内容被擦除后恢复的内容。在测试时,我注意到MutationObserver即使我从不给他打电话,我的工作也是如此。这是我创建元素的代码:function moveFilters(){   if($("#new-filter-place").length == 0){       $("<h1 id='new-filter-place'>TEST</h1>").insertAfter($('#category-top10'));       observeFilters();   }}这是我的观察者:function observeFilters(){    console.log('test');    var target = document.querySelector("#new-filter-place");    var observer = new MutationObserver(function(mutations){        mutations.forEach(function(mutation){            var nodes = Array.from(mutation.removedNodes);            var directMatch = nodes.indexOf(target) > -1;            var parentMatch = nodes.some(parent => parent.contains(target));            if(directMatch || parentMatch){                observer.disconnect();                moveFilters();        }    });})var config = {    subtree: true,    childList: true};    observer.observe(document.body, config);}我从来没有调用 function moveFiltersnor observeFilters,所以页面上没有 id 为“new-filter-place”的元素,但是当其他元素被擦除时,观察者被触发。有人可以向我解释当我从不调用它时如何触发该功能吗?
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

好吧,经过数小时的调试,我找到了它。其他程序员写下了其他脚本,所以基本上他调用了那个脚本。



查看完整回答
反对 回复 2023-02-24
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信