網頁複製文字研究整理 常用這個功能,我都網路 Google 找解答,今天又去爬了一次,就順便整理一下。
以前常用寫法 前端開發:如何使用Javascript實現複製到剪貼簿的功能 - Astral Web 歐斯瑞有限公司
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 function copyText ( ) { var node = document .getElementById("text" ); if (document .body.createTextRange) { var range = document .body.createTextRange(); range.moveToElementText(node); range.select(); document .execCommand("copy" ); alert("複製成功!" ); } else if (window .getSelection) { var selection = window .getSelection(); var range = document .createRange(); range.selectNodeContents(node); selection.removeAllRanges(); selection.addRange(range); document .execCommand("copy" ); alert("複製成功!" ); } else { alert('無法複製內容、瀏覽器不支援' ); } }
自動選取某個區域的文字 - OXXO.STUDIO
Clipboard API How do I copy to the clipboard in JavaScript? - Stack Overflow ,這篇有很多留實做方法,這邊有看到有人用到 HTML5 Clipboard API。
1 2 3 4 5 6 var text = "Example text to appear on clipboard" ;navigator.clipboard.writeText(text).then(function ( ) { console .log('Async: Copying to clipboard was successful!' ); }, function (err ) { console .error('Async: Could not copy text: ' , err); });
注意,這邊不能在 console.log 下,因為會無效。(原因:Clipboard write was blocked due to lack of user activation.),需要使用者操做才能有效。
Clipboard API 實做測試
Clipboard Test
復製圖片法 Unblocking clipboard access 這篇有教,但先不研究。目前知道Firefox 貼上只能用在文字上面,圖片目前還不行。
Async Clipboard API Image Demo
相關 API 文件 Clipboard.writeText() - Web APIs | MDN 複製用的。
Permissions API - Web APIs | MDN ,權限控制。
TextRange - Web APIs | MDN 以廢棄,不推薦使用
Selection - Web APIs | MDN ,這個是框選用的API。仔細看發現還滿簡單的。
1 2 var selObj = window .getSelection();var range = selObj.getRangeAt(0 );