很多技術博客有這樣的處理,當咱們複製代碼的時候,會自動加上一段本信息版權爲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>
type: 事件觸發類型,如click,keypress等等,下面咱們詳細的講講事件類型!!code
handle:事件處理函數,事件出發後,定義可能發生的變化!!orm
false: 表示事件冒泡模型,通常來講都是false。對象
clipboardData
clipboardData
屬性保存了一個 DataTransfer
對象(用戶剪切板的內容),這個對象可用於:blog
format
數據類型有:text/plain
,text/uri-list。data表示要添加到剪切板的數據。
事件
paste
事件處理器拷貝進剪切板的數據,一般經過調用 getData(format)
方法
例如:ip