移除一个dom元素的所有事件

引子:最近在写一个插件,想办法干掉 CSDN 中不登录无法复制的问题。找到了触发登录弹窗的方法:目标dom上绑定了 copy() 方法{ dom.bind('copy', () => {}) }。 要移除这个方法。

找到一个比较残暴的方案:克隆

克隆整个节点并使用克隆的替换该节点

dom.replaceWith(dom.cloneNode(true));
// dom 要被替换的元素
// true:参数,为 true 时,所有子元素也一并被克隆

1. 摧毁所有的监听和事件执行(除行内事件)

2. 内部监听器(行内事件)会被保留下来,这意味着一个onclick 属性中的方法仍然会按照定义触发

<button id="button" onclick="console.log('clicked!')"></button>
// button 的 onclick 属性会被执行
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容