原生JS在網頁上覆制的全部文字後面自動加上一段版權聲明

很多技術博客有這樣的處理,當咱們複製代碼的時候,會自動加上一段本信息版權爲XXXX,這是怎麼實現的呢?函數

其實實現的方式很簡單,能夠在個人網站頁面上綁定一個copy事件,當你複製文章內容的時候,自動在剪切板文字後面加上一段版權聲明。網站

 

我這邊是沒有加這些的,代碼什麼的想複製就複製好了。你們都是靠代碼技能吃飯的,能夠體會寫代碼的不易,相信必定會尊重知識勞動成果——保留出處等版權信息的。spa

 

效果示例 :

 

 

 

代碼示例:

<body>
    <p>是的你沒有看錯, 我仍是在路邊吃快餐, 在北京市的三里屯, 在上海市的外灘</p>
</body>
<script>
    // 監聽整個網頁的copy(複製)事件
  document.addEventListener('copy', function (event) {
  // clipboardData 對象是爲經過編輯菜單、快捷菜單和快捷鍵執行的編輯操做所保留的,也就是你複製或者剪切內容
    let clipboardData = event.clipboardData || window.clipboardData;
    // 若是未複製或者未剪切,則return出去
    if (!clipboardData) { return; }
    // Selection 對象,表示用戶選擇的文本範圍或光標的當前位置。
    //     聲明一個變量接收 -- 用戶輸入的剪切或者複製的文本轉化爲字符串
    let text = window.getSelection().toString();
    if (text) {
      // 若是文本存在,首先取消文本的默認事件
      event.preventDefault();
      // 經過調用常clipboardData對象的 setData(format, data) 方法;來設置相關文本

      // setData(format, data);參數
      // format
      // 一個DOMString 表示要添加到 drag object的拖動數據的類型。
      // data
      // 一個 DOMString表示要添加到 drag object的數據。
      clipboardData.setData('text/plain', text + '\n\n張無忌 版權全部');
    }
  });

</script>

 

以上代碼相關參數詳解:

 

element.addEventListener(type, handle, false);

  type: 事件觸發類型,如click,keypress等等,下面咱們詳細的講講事件類型!!code

  handle:事件處理函數,事件出發後,定義可能發生的變化!!orm

  false: 表示事件冒泡模型,通常來講都是false。對象


 

 

clipboardData

clipboardData 屬性保存了一個 DataTransfer 對象(用戶剪切板的內容),這個對象可用於:blog

  format數據類型有:text/plaintext/uri-list。data表示要添加到剪切板的數據。事件

  • 描述哪些數據能夠由 cut 和 copy 事件處理器放入剪切板,一般經過調用 setData(format,方法;設置拖放操做的數據(剪切板的數據)到指定的數據和類型。
  • 獲取由 paste 事件處理器拷貝進剪切板的數據,一般經過調用 getData(format) 方法

 

 

 

event.preventDefault() 方法阻止元素髮生默認的行爲。

例如:ip

  • 當點擊提交按鈕時阻止對錶單的提交
  • 阻止如下 URL 的連接

 

 

 

 

 

 

若是有任何疑問便可留言反饋,會在第一時間回覆反饋,謝謝你們

相關文章
相關標籤/搜索