MutationObserver
childList:
添加、删除目标节点的子节点时会收到通知(子节点的后代节点添加或删除时不会收到通知)
变动记录中的属性如下:
- type:如果是属性变化,返回"attributes",如果是一个CharacterData节点(Text节点、Comment节点)变化,返回"characterData",节点树变化返回"childList"
- target:返回影响改变的节点
- addedNodes:返回添加的节点列表
- removedNodes:返回删除的节点列表
- previousSibling:返回分别添加或删除的节点的上一个兄弟节点,否则返回null
- nextSibling:返回分别添加或删除的节点的下一个兄弟节点,否则返回null
- attributeName:返回已更改属性的本地名称,否则返回null
- attributeNamespace:返回已更改属性的名称空间,否则返回null
- oldValue:返回值取决于type。对于"attributes",它是更改之前的属性的值。对于"characterData",它是改变之前节点的数据。对于"childList",它是null
其中 type、target这两个属性不管是哪种观察方式都会有返回值,其他属性返回值与观察方式有关,比如只有当attributeOldValue或者characterDataOldValue为true时oldValue才有返回值,只有改变属性时,attributeName才有返回值等。
| MutationEvent | MutationObserver options |
|---|---|
| DOMNodeInserted | { childList: true, subtree: true } |
| DOMNodeRemoved | { childList: true, subtree: true } |
| DOMSubtreeModified | { childList: true, subtree: true } |
| DOMAttrModified | { attributes: true, subtree: true } |
| DOMCharacterDataModified | { characterData: true, subtree: true } |
MutationObserver的更多相关文章
- 强大的DOM变化观察者MutationObserver
在这之前 DOM3 提供了 Mutation events 事件 DOMAttrModified DOMAttributeNameChanged DOMCharacterDataModified DO ...
- 利用MutationObserver对页面元素的改变进行监听
'use strict'; let MutationObserver = window.MutationObserver || window.WebKitMutationObserver || win ...
- 使用MutationObserver对象封装一个监听DOM生成的函数
(function(win){ 'use strict'; var listeners = []; var doc = win.document; var MutationObserver = win ...
- JavaScript是如何工作的:使用MutationObserver跟踪DOM的变化
摘要: 掌握MutationObserver. 这是专门探索 JavaScript 及其所构建的组件的系列文章的第10篇. 如果你错过了前面的章节,可以在这里找到它们: JavaScript 是如何工 ...
- js dom 观察者属性 MutationObserver
MDN上说的很清楚 MutationObserver给开发者们提供了一种能在某个范围内的DOM树发生变化时作出适当反应的能力.该API设计用来替换掉在DOM3事件规范中引入的Mutation事件 co ...
- MutationObserver DOM变化的观察
简单的给MutationObserver做个测试及总结笔记. MutationObserver,window上的一个(构造)函数,可以通过其创建的观察者(观察对象)达到观察DOM的变化的效果. 可适用 ...
- MutationObserver 监听DOM树变化
1 概述 Mutation observer 是用于代替 Mutation events 作为观察DOM树结构发生变化时,做出相应处理的API.为什么要使用mutation observer 去代替 ...
- HTML5 MutationObserver检测页面劫持
好久没写博客了,业务一直在变化,陆陆续续的做了很多web app,被业务流淹没就很少有机会去反思,前端技术发展如此之快,常常有种不学则退的恐慌,一种技术还没吃透就涌出新的技术,然后一波人又打着各种旗帜 ...
- H5特性 MutationObserver 监听元素 动态改变iframe高度
这些代码要写在iframe页中执行 <script type="text/javascript"> $(function () { // Firefox和Chrome早 ...
- How Javascript works (Javascript工作原理) (十) 使用 MutationObserver 监测 DOM 变化
个人总结: 这篇文章介绍了几种监测DOM变化的方法,重点介绍的是一个新浏览器API叫做MutationObserver. 注意:不要和Vue.js种 Object.defineProperty() 的 ...
随机推荐
- openresty开发系列30--openresty中使用http模块
OpenResty默认没有提供Http客户端,需要使用第三方提供的插件 我们可以从github上搜索相应的客户端,比如https://github.com/pintsized/lua-resty-ht ...
- Spring cloud微服务安全实战-5-2前端页面改造
创建一个新的maveb项目,做一个admin的管理界面 用angular写前面的页面. 先吧dependcency引用引进来. 前端的插件能帮我在springboot里面搭建出一个nodeJS的环境来 ...
- QML随机颜色
color=Qt.rgba(Math.random(),Math.random(),Math.random(),1)
- Linux系统调优——内核相关参数(五)
修改内核参数有3种办法:一种临时修改,两种永久修改. 临时修改是使用sysctl [选项] [参数名=值]命令:永久修改是修改/etc/sysctl.conf文件或修改/proc/sys/目录下的对应 ...
- 今天被这个BDE错误搞了半天,不过终于好了,分享一下
今天正编译程序时,突然就报了这个错误出来,重启电脑都没用,多亏网上高手指教,先把解决方案列于下,供受此累得朋友查阅,自己也留底供查找:"Shared memory conflict ($21 ...
- 深层对象转深层数组(重点:先把对象转数组,直接for in 遍历对象不太可行)
var json: { PRow0: { style: { width: 10 } }, PTable1: { style: { height: 20 } } } const jsonToArrTre ...
- HTML布局排版手机上浏览的网页
前面做个几个简单的测试html布局排版的页面,都是在浏览器上查看的,C-LODOP可通过集中打印和广域网AO打印方式,让手机等也可以打印预览和打印. 集中打印的大体方法是通过一台windows电脑作为 ...
- 13点睛Spring4.1-Spring EL
13.1 Spring EL Spring EL-Spring表达式语言,支持在xml和注解中使用表达式,类似jsp的EL表达式语言; 本教程关注于在注解中使用Spring EL; Spring EL ...
- Exchanger实现线程间数据交换
package com.duchong.concurrent; import java.util.ArrayList; import java.util.List; import java.util. ...
- mysql日期加一个天数获得新的日期
原文地址:https://476057266-qq-com.iteye.com/blog/2047671 在当前的日期上加三天,天数随便改: SELECT date_add(CURRENT_DATE( ...