对 MutationObserver 感到困惑

2024-04-14

所以我一直在绞尽脑汁地思考如何使用MutationObserver,但没有取得任何进展。我在 W3C 网站和 MDN 上读到过相关内容。当在 MDN 中阅读它时,在示例之前一切都有意义。

// select the target node
var target = document.querySelector('#some-id');

// create an observer instance
var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    console.log(mutation.type);
  });   
});

// configuration of the observer:
var config = { attributes: true, childList: true, characterData: true };

// pass in the target node, as well as the observer options
observer.observe(target, config);

// later, you can stop observing
observer.disconnect();

我遇到的最麻烦的部分是创建观察者实例,不确定属于那里的语法。另外,在控制台中,我收到“TypeError:值未实现接口 Node”。 无论我看过并尝试使用哪些示例;将示例中的选择器替换为所需的 jQuery 选择器(非 jQ 选择器也返回相同的问题)。


首先,你绝对不应该使用 jQ 选择器,因为它们不是 Node 元素。 其次,您必须确保查询选择器返回不为空。 为了确保第一次尝试观察 document.body:它绝对是一个 Node 对象。 就像是

(
    new MutationObserver(function(mutationEventList){
        console.log(mutationEventList)
    })
)
.observe(document.body, {
    childList: true,
    attributes: true,
    characterData: true
})

当您熟悉以观察者为目标并了解 MutationObserverInit 选项值(它们的描述并不那么好)时,您将能够正确使用 MutationObserver。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对 MutationObserver 感到困惑 的相关文章

  • 在 Node.js 中一次迭代 50 个项目的数组

    我是 node js 的新手 目前正在尝试编写数组迭代代码 我有一个包含 1 000 个项目的数组 由于服务器负载问题 我想一次迭代 50 个项目的块 我目前使用 forEach 循环 如下所示 我希望将其转换为上述块迭代 result i
  • while 循环中 regex.exec() 赋值的更好解决方案

    这里有更好的解决方案吗 我尽量避免里面的作业while但仍然能够循环匹配并使用捕获的组 var match var CSS URL PATTERN url s s s s gm while match CSS URL PATTERN exe
  • 使用 Google Apps 脚本处理数组中输入元素中的多个文件

    我有一个表单 允许从下拉列表中选择一个项目并上传文件 项目的名称和 ID 保存在电子表格文档中 适用于一个文件 但我想上传多个文件 你能帮我修改一下脚本吗 HTML 部分如下所示 div class col md 4 col sm 6 di
  • 谷歌脚本循环性能

    我是 google 脚本的新手 我不确定为什么与 Excel VBA 的简单循环相比 我的性能如此差 我附上了下面的代码 它是一个大约 1200 行的循环 每秒删除大约 2 3 行 我写的脚本效率很低吗 我还不熟悉 Javascript 但
  • Highcharts 奇怪的分组行为

    我正在使用延迟加载 http www highcharts com stock demo lazy loading加载 OHLC 数据的方法 在服务器端 我使用 Python MySQL 并有 4 个包含 OHLC 数据的表 时间间隔为 5
  • 如何共享 Swagger 文档

    我最近开始使用 Swagger 来编写文档 但有一些事情我仍然不清楚 我创建了 YAML 文档 现在我希望能够与团队的其他成员共享 pdf 或 HTML Javascript 页面中的文档 我无法使用 SwaggerHub 因为它们没有私有
  • 如何在html中创建字体选择栏

    我想创建一个下拉菜单 在其中我们可以看到所有可用的字体 并且可以选择我们选择的任何字体 我还想创建一个字体颜色选择小部件 存在大量的字体样式 我想知道如何获取所有这些字体以及如何创建一个小部件 用户可以使用该小部件选择他选择的颜色 为了创建
  • 异步 JS 加载到 head 中

    我需要将脚本异步加载到页面上 我正在使用createElement方法在头部动态插入脚本标签 发生的事情是首先加载页面源 完成后 头部中包含的所有元素都会并行加载 一旦全部加载完毕 我动态添加的脚本就会加载 这在逻辑上是有道理的 但我正在寻
  • 在 Angular JS 中撤消重做

    我有一个大对象排列在 rootScope 中 比如说 gt 100 个对象 每个对象又具有对象 数组的层次结构 我想使用 deepWatching watch 整个 rootScope 即将 watch 的第三个参数设置为 TRUE 但这里
  • 用于匹配重复子字符串的单个js正则表达式?

    假设我有一个字符串 例如 where is mummy where is daddy 我想用空字符串替换任何一组重复子字符串 所以在这种情况下where and is元素将被删除 结果字符串将是 mummy daddy 我想知道是否有任何单
  • Google App Script postMessage 与收件人窗口的来源不匹配

    我有一个 Google App 脚本部署为Web应用程序 https developers google com apps script guides web 它工作正常 直到今天晚上我发现它无法在 Firefox 或 Chrome 中加载
  • 如何使用 JS/Puppeteer 上传文件

    我试图弄清楚如何将图片文件上传到输入对话框中 不可能只输入名称并按 Enter 键 因为我没有找到使用 Puppeteer 实现自动化的方法 我想我必须设置一些值作为图片 但我不知道该怎么做 有任何想法吗 您使用上传文件elementHan
  • Javascript for 循环跳过最后一个元素

    我有一个数组 根据某些条件从中删除某些元素 当我删除元素时 我会重新启动 for 循环 因为索引已刷新 var k for k 0 k lt this j data length k if condition true this j dat
  • 包含括号的变量会导致问题[重复]

    这个问题在这里已经有答案了 简单的事情 当单击按钮并将其写入文本字段时 我读取选择框的值 选择框
  • Electron 应用程序中的 NEDB 持久化

    我正在尝试从电子应用程序连接到 nedb CRUD 操作效果很好 但我没有看到 db 文件 D my db 检查隐藏文件 文件存在于某个地方 因为即使在机器重新启动后它也会保留数据 我怀疑电子威胁着我的相对路径 但我可以在任何地方找到它 v
  • 将base64图像转换为Node Js中的文件

    我是 Node Js 新手 我需要包含用户的个人资料图片 我从 IOS 应用程序收到 Base64 图像的请求 我需要将其存储在 images 文件夹中并将图像路径保存在 mongodb 数据库中 我使用了以下代码 var bitmap n
  • 角度距离计算

    我正在使用角度制作距离计算应用程序 Html
  • 如何让 Grunt.js 和 Meteor.js 协同工作?

    我想在我的 Meteor 应用程序中使用简单的复制和串联 但是当 Meteor 在服务器和客户端上运行所有 javascript 文件时 我遇到了问题 而我不希望它们在任何地方运行 它要么只是配置文件 例如Gruntfile js或我想以某
  • 跨浏览器相当于explicitOriginalTarget事件参数

    有谁知道跨浏览器等价于explicitOriginalTarget事件参数 该参数是 Mozilla 特定的 它为我提供了导致模糊的元素 假设我的页面上有一个文本输入和一个链接 文本输入具有焦点 如果我点击链接 文本输入的模糊事件会通过ex
  • Fancybox修改。如何修改 fancybox 以停止在每个画廊的最后一项? (画廊 1 画廊 2 等)[重复]

    这个问题在这里已经有答案了 我正在为我的照片库使用 fancybox 插件 我有多个包含更多项目 照片 的画廊 我想知道如何在点击每个画廊的最后一个项目时停止幻灯片放映 我的 fancybox js 没有被修改 谢谢 您需要添加该选项loo

随机推荐

  • 将包含无效字符的嵌套字段从 Spark 2 导出到 Parquet [重复]

    这个问题在这里已经有答案了 我正在尝试使用 Spark 2 0 2 将 JSON 文件转换为镶木地板 JSON 文件来自外部源 因此架构在到达之前无法更改 该文件包含属性映射 在我收到文件之前 属性名称是未知的 属性名称包含不能在 parq
  • 树视图虚拟化

    我们正在尝试找到一种虚拟化的好方法TreeView 数据并不是真正的问题 因为它非常轻 每个项目大约 16 字节 问题是我们可能有数以万计的数据 尽管实际数据只占用 160 kb 内存 但树视图项目确实使用更多的内存 我们现在已经尝试使用
  • 如果 Address 嵌套在 User 中,为什么我必须保留这两个对象?

    我想更好地熟悉 JPA 所以我创建了一个非常简单的项目 我有一个用户类和一个地址类 看来我必须坚持两者 即使我将地址添加到我的用户类中 User import javax persistence import java util HashS
  • 严重:Web 应用程序 [/restapp] 中的 Servlet [Jersey Web Application] 引发了 load() 异常

    这是我的 REST API 项目 我不知道这个错误是什么 我正在尝试从两天开始解决这个错误 现在我已经筋疲力尽了 有人可以帮助我吗 网页正在加载 但控制台中显示此错误 SEVERE Servlet Jersey Web Applicatio
  • Bazaar 上的 SSH 权限被拒绝

    我是芭莎的新手 我正在尝试设置我的 SSH 密钥 但我总是收到 没有权限 以下是我所做的事情 打开 PuTTYgen 点击 生成 围绕鼠标指针移动 添加密码 密码 点击 保存公钥 保存公钥 点击 保存私钥 保存私钥 Private Key
  • 将案例类转换为另一个递归结构的相同案例类

    我正在尝试使用 Shapeless 来转换案例类 如下所示 case class A int Int str String case class B a A str String case class AnotherA int Int st
  • ffmpeg流rc缓冲区下溢

    目前我正在使用开源工具 ffmpeg ffserver 建立一个屏幕共享平台 分享之初一切都很好 大约 1 1 2 分钟后 我在输出中得到以下异常 flv 0x3a47aa0 rc buffer underflow flv 0x3a47aa
  • 自定义模块未显示在应用程序列表中

    我正在尝试将模块从 odoo 8 安装到 odoo 9 我刚刚将整个文件夹复制到addonsodoo 9 中的文件夹并希望我能以某种方式installodoo 9 中的模块 但它没有显示在要安装的应用程序列表中 odoo 的结构是否有任何变
  • 如何在 swi-prolog 的 prolog 文件中运行 prolog 查询?

    如果我有一个定义规则的 prolog 文件 并在 Windows 中的 prolog 终端中打开它 它会加载事实 然而 然后它显示 提示我手动输入一些内容 如何将代码添加到文件中 以便它实际上会评估这些特定的语句 就像我输入它们一样 像这样
  • 两种表结构的区别

    我对这两种结构很困惑 这两个表各有什么优缺点 哪一个更好 为什么 TABLE1 反模式 在常见情况下 第二个表是反模式在数据库设计的背景下 而且 更重要的是 它有特定的名称 实体 属性 值 EAV 在某些情况下 使用这种设计是合理的 但这种
  • css显示表格单元格需要百分比宽度

    我已经处于需要对 div 元素使用 display table cell 命令的位置 但是我发现只有在宽度上添加百分比时 单元格 才能正常工作 在这个小提琴中http jsfiddle net NvTdw http jsfiddle net
  • 为什么变量在重写时的行为与方法不同? [复制]

    这个问题在这里已经有答案了 一般来说 重写是在子类中重新定义成员含义的概念 为什么在java中重写时变量的行为不像方法 例如 class Base int a 10 void display System out println Insid
  • 从 iOS 应用程序在 Facebook 页面上发帖未显示在页面上?

    我正在 Facebook 页面上发布图片和虚拟文本 页面 ID 为 848190045198980 我正在使用我的 Facebook 凭据登录 而且我对特定页面具有管理员角色 所以我只是从 Facebook 获得基本权限 以下是请求和响应
  • d3.js 仅加载部分数据/同步数据

    我有很多数据 我将它们绘制为堆叠条形图 我的测试数据大约有 500k JSON 对象 50k 行 有 10 个堆叠段 我的问题是我不知道如何仅加载部分数据 它显示在浏览器中 因此宽度约为 1200 到 1920 像素 我正在使用比例来计算线
  • 随机 com.android.volley.NoConnection 错误,java.io.InterruptedIOException,statuscode=0

    我有一个本机 Android 应用程序 使用 volley 框架从PHP服务器端脚本 它在大多数情况下都运行良好 但我有 20 的失败率 错误说 com android volley NoConnection java io Interru
  • 请澄清:带有 CSRF 的 Jenkins REST API 需要 user:PASSWORD 的碎屑,但不需要 user:API_TOKEN 的碎屑?

    我发现与启用 CSRF 保护 https wiki jenkins io display JENKINS Remote access API RemoteaccessAPI CSRFProtection 我可以发出带有 crumbs hea
  • Java复制数组部分[重复]

    这个问题在这里已经有答案了 有没有一种方法可以复制数组 不是数组列表 的一部分并从中创建一个新数组 Example 1 2 3 4 5 然后您从中创建一个新数组 1 2 3 有没有任何一行 方法可以做到这一点 查看方法Arrays copy
  • Django modelformset_factory删除can_delete标记的对象

    您好 我有一个问题 我已经制作了 modelformset factory 并且在选项中我选择了 can delete True 现在我不知道如何将标记的对象删除为 DELETE True 来从数据库中删除它们 我试图通过某些方式做到这一点
  • ReSharper intellisense 不显示文档

    知道为什么我没有收到任何与我的 ReSharper IntelliSense 一起使用的文档吗 如果我转至 ReSharper 选项并启用 Visual Studio IntelliSense 则在浏览 IntelliSense 弹出窗口中
  • 对 MutationObserver 感到困惑

    所以我一直在绞尽脑汁地思考如何使用MutationObserver 但没有取得任何进展 我在 W3C 网站和 MDN 上读到过相关内容 当在 MDN 中阅读它时 在示例之前一切都有意义 select the target node var