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);
    }
  })
}());

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM