打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Js动态监听listen dom变化(支持WebView)并作出处理
Js代码  
  1. // Firefox和Chrome早期版本中带有前缀  
  2. var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver  
  3.   
  4. // 选择目标节点  
  5. var target = document.querySelector('#some-id');  
  6.    
  7. // 创建观察者对象  
  8. var observer = new MutationObserver(function(mutations) {  
  9.   mutations.forEach(function(mutation) {  
  10.     console.log(mutation.type);  
  11.   });      
  12. });  
  13.    
  14. // 配置观察选项:  
  15. var config = { attributes: true, childList: true, characterData: true }  
  16.    
  17. // 传入目标节点和观察选项  
  18. observer.observe(target, config);  
  19.    
  20. // 随后,你还可以停止观察  
  21. observer.disconnect();  

 

实例方法

void observeNode target, optional MutationObserverInit options );
void disconnect();
Array takeRecords();

MutationObserverInit

MutationObserverInit是一个用来配置观察者对象行为的对象,该对象可以拥有下面这些属性:

注:  childListattributes, 或者characterData三个属性中必须至少有一个为true.否则,会抛出异常"An invalid or illegal string was specified".
属性描述
childList如果需要观察目标节点的子节点(新增了某个子节点,或者移除了某个子节点),则设置为true.
attributes如果需要观察目标节点的属性节点(新增或删除了某个属性,以及某个属性的属性值发生了变化),则设置为true.
characterData如果目标节点为characterData节点(一种抽象接口,具体可以为文本节点,注释节点,以及处理指令节点)时,也要观察该节点的文本内容是否发生变化,则设置为true.
subtree除了目标节点,如果还需要观察目标节点的所有后代节点(观察目标节点所包含的整棵DOM树上的上述三种节点变化),则设置为true.
attributeOldValue

attributes属性已经设为true的前提下,如果需要将发生变化的属性节点之前的属性值记录下来(记录到下面MutationRecord对象的oldValue属性中),则设置为true.

characterDataOldValuecharacterData属性已经设为true的前提下,如果需要将发生变化的characterData节点之前的文本内容记录下来(记录到下面MutationRecord对象的oldValue属性中),则设置为true.
attributeFilter一个属性名数组(不需要指定命名空间),只有该数组中包含的属性名发生变化时才会被观察到,其他名称的属性发生变化后会被忽略.

 

测试实例:

Java代码  
  1. // Chrom  Console 监听 title变化  
  2. new MutationObserver(function(mutations) {  
  3.     console.log(document.title);  
  4.     mutations.forEach(function(mutation) {  
  5.         console.log(mutation.type);  
  6.     });  
  7. }).observe(document.querySelector('title'), { attributes: true, childList: true, characterData: true });  
  8.   
  9. // 每当title节点变化,console以下结果  
  10. // 焦点之中的万能险:资金错配与被动加杠杆(标题)  
  11. // childList(mutation.type)  

 

 

api:https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
DOM监控 MutationObserver | 木瓜太香
chrome调试工具常用功能整理
常见的原生javascript DOM操作
HTML DOM 属性 对象
树形接口带复选框
JavaScript学习
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服