js来监控复制粘贴

Posted we are young

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js来监控复制粘贴相关的知识,希望对你有一定的参考价值。

    平时我们在复制网页上面代码到控制台调试时,有时会出现复制过来的代码后面加上了一下描述信息(作者、版权等信息),每次需要删除才能运行,所以今天看看怎么能保证我们粘贴的代码不携带这些信息呢?

(function() {
  document.addEventListener(‘copy‘,(e)=>{
    e.preventDefault();
    e.stopPropagation();
    console.info(‘触发复制事件‘);
    /** 
      返回一个Selection对象,表示用户选择的文本范围或光标的当前位置
      Selection.getRangeAt返回一个包含当前选区内容的区域对象
    */
    let text = window.getSelection().getRangeAt(0);
    let node = document.createElement(‘div‘);
    // cloneContents方法把范围(Range)的内容复制到一个DocumentFragment对象
    node.appendChild(window.getSelection().getRangeAt(0).cloneContents());
    /** 
       ClipboardEvent.clipboardData 属性保存了一个 DataTransfer 对象,这个对象可用于:
       描述哪些数据可以由 cut 和 copy 事件处理器放入剪切板,通常通过调用 setData(format, data) 方法;
       获取由 paste 事件处理器拷贝进剪切板的数据,通常通过调用 getData(format) 方法
    */
    if(e.clipboardData){
      e.clipboardData.setData("text/html", node.innerHTML);
      e.clipboardData.setData("text/plain",text);
    }else if(window.clipboardData){
      return window.clipboardData.setData("text", text);
    }
  })
}());

 

 

 


以上是关于js来监控复制粘贴的主要内容,如果未能解决你的问题,请参考以下文章

Android课程---Android Studio使用小技巧:提取方法代码片段

网站内容禁止复制和粘贴另存为的js代码

VsCode 代码片段-提升研发效率

VB中如何实现复制粘贴?

JS 复制粘贴代码,本地测试正常,为啥到服务器就不能执行复制?

jquery或js复制/ 粘贴事件