监听html元素是否被删除,删除之后重新生成被删除的元素

javascript 复制代码
/**
 * 监听水印是否清除和修改
 */
export function watermarkClear() {
  // 添加水印的盒子
  let box: any = document.querySelector('.dplayer-video-wrap')
  // 水印
  let watermark: any = document.querySelector('.dplayer-logo')
  // 观察器的配置(需要观察什么变动)
  const config = { attributes: true, childList: true, subtree: true };
  // 当观察到变动时执行的回调函数
  const callback = function (mutationsList: any, observer: any) {
    watermark = document.querySelector('.dplayer-logo')
    let watermarkImg = document.querySelector('.dplayer-logo img')
    if (!watermark || !watermarkImg) {
      watermark?.remove()
      const div = document.createElement("div");
      div.className = "dplayer-logo"
      div.innerHTML = `<img src="${'/_nuxt/assets/images/AppOverall/watermark.png'}" alt="">`
      box?.appendChild(div)
    }
  };

  // 创建一个观察器实例并传入回调函数
  const observer = new MutationObserver(callback);

  // 以上述配置开始观察目标节点
  observer.observe(box, config);

}

调用

javascript 复制代码
watermarkClear()

监听的元素

这个元素被删除之后在这个父盒子里面重新生成

扩展:

元素加 pointer-events: none; 属性使用开发工具就不能直接点到元素所在的代码位置

相关推荐
jingling5552 分钟前
面试版-前端开发核心知识
开发语言·前端·javascript·vue.js·面试·前端框架
拾光拾趣录7 分钟前
CSS 深入解析:提升网页样式技巧与常见问题解决方案
前端·css
莫空00008 分钟前
深入理解JavaScript属性描述符:从数据属性到存取器属性
前端·面试
guojl9 分钟前
深度剖析Kafka读写机制
前端
FogLetter9 分钟前
图片懒加载:让网页飞起来的魔法技巧 ✨
前端·javascript·css
Mxuan10 分钟前
vscode webview 插件开发(精装篇)
前端
Mxuan11 分钟前
vscode webview 插件开发(交付篇)
前端
Mxuan12 分钟前
vscode 插件与 electron 应用跳转网页进行登录的实践
前端
拾光拾趣录12 分钟前
JavaScript 加载对浏览器渲染的影响
前端·javascript·浏览器
Codebee12 分钟前
OneCode图表配置速查手册
大数据·前端·数据可视化