监听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; 属性使用开发工具就不能直接点到元素所在的代码位置

相关推荐
2501_920931701 小时前
React Native鸿蒙跨平台采用ScrollView的horizontal属性实现横向滚动实现特色游戏轮播和分类导航
javascript·react native·react.js·游戏·ecmascript·harmonyos
0思必得03 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
东东5163 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino4 小时前
图片、文件的预览
前端·javascript
2501_920931705 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
layman05285 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔6 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李6 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN6 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒6 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局