複製文本加上版權信息功能實現

有些網站爲了維護版權信息, 用戶在複製完成後, 發現粘帖出來的內容每每都還有一些做者名字之類的版權信息, 那麼這樣的功能是怎麼實現的呢? 其實原理也是很是的簡單,就是監聽一下剪切板事件.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div>前端好難學啊</div>
    <script>
        let oDiv = document.querySelector('div');
        oDiv.oncopy = function(e) { // 複製事件
            e.preventDefault();
            let copyMsg = window .getSelection() + '商業轉載請註明出處。'; // window .getSelection() 表示選擇的內容
            e.clipboardData.setData("Text", copyMsg); // 將複製信息添加到剪切板
        }
    </script>
</body>
</html>
原理: 監聽文本複製事件, 並阻止事件默認行爲, window .getSelection() 表示選中的文本內容, 再調用 clipboardData.setData() 方法將修改後的文本添加到剪切板

猛戳這裏查看 clipboardData 對象的兼容性前端

注意網站

  • 在IE中,clipboardData對象是window對象的屬性;
  • 在Chrome、Safari和Firefox 4+中,clipboardData對象是相應event對象的屬性。
相關文章
相關標籤/搜索