侦听innerHTML

侦听元素innerHTML变化

当前为 2023-07-05 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/470241/1215965/%E4%BE%A6%E5%90%ACinnerHTML.js

  1. // ==UserScript==
  2. // @name 侦听innerHTML
  3. // @namespace https://leochan.me
  4. // @version 1.1.0
  5. // @description 侦听元素innerHTML变化
  6. // @author Leo
  7. // @match *://*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=leochan.me
  9. // @licesen GPLv2
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. function leoChanWatchInnerHTML(selector, cb){
  14. let targetElement = document.querySelector(selector);
  15. if(!targetElement){
  16. return;
  17. }
  18. let previousInnerHTML = targetElement.innerHTML;
  19. let timer = null;
  20. targetElement.addEventListener('DOMSubtreeModified', () => {
  21. clearTimeout(timer);
  22. timer = setTimeout(() => {
  23. if (targetElement.innerHTML !== previousInnerHTML) {
  24. cb()
  25. }
  26. previousInnerHTML = targetElement.innerHTML;
  27. }, 100);
  28. });
  29. }