JavaScript實現(xiàn)一鍵復制文本功能的示例代碼
最近小編做了一鍵復制文本的需求(功能如下圖所示)。本文簡單介紹兩種javascript實現(xiàn)文本復制(將文本寫入剪貼板)的方法——navigator.clipboard
和document.execCommand()
,大家可以根據需求特點選用。
一、navigator.clipboard 對象
1. navigator.clipboard 方法匯總
方法 | 用途 |
---|---|
Clipboard.readText() | 復制剪貼板里的文本數據 |
Clipboard.read() | 復制剪貼板里的文本數據/二進制數據 |
Clipboard.writeText() | 將文本內容寫入剪貼板 |
Clipboard.write() | 將文本數據/二進制數據寫入剪貼板 |
2. 代碼示例
方法 1: Clipboard.writeText()
, 用于將文本內容寫入剪貼板;
document.body.addEventListener("click", async (e) => { await navigator.clipboard.writeText("Yo"); });
方法 2: Clipboard.write()
, 用于將文本數據/二進制數據寫入剪貼板
Clipboard.write()
不僅在剪貼板可寫入普通text,還可以寫入圖片數據(Chrome瀏覽器僅支持png格式)。
async function copy() { const image = await fetch("kitten.png"); const text = new Blob(["Cute sleeping kitten"], { type: "text/plain" }); const item = new ClipboardItem({ "text/plain": text, "image/png": image, }); await navigator.clipboard.write([item]); }
3. 優(yōu)缺點
① 優(yōu)點
所有操作都是異步的,返回 Promise
對象,不會造成頁面卡頓;
無需提前選中內容,可以將任意內容(比如圖片)放入剪貼板;
② 缺點: 允許腳本任意讀取會產生安全風險,安全限制較多。
Chrome 瀏覽器規(guī)定,只有 HTTPS
協(xié)議的頁面才能使用這個 API;
調用時需要明確獲得用戶的許可。
二、document.execCommand() 方法
1. document.execCommand() 方法匯總
方法 | 用途 |
---|---|
document.execCommand('copy') | 復制 |
document.execCommand('cut') | 剪切 |
document.execCommand('paste') | 粘貼 |
2. 代碼示例
document.execCommand('copy')
,用于將已選中的文本內容寫入剪貼板。
結合 window.getSelection()
方法實現(xiàn)一鍵復制功能:
const TestCopyBox = () => { const onClick = async () => { const divElement = document.getElementById("select-div"); if (window.getSelection) { const selection = window.getSelection(); const range = document.createRange(); range.selectNodeContents(divElement); selection.removeAllRanges(); selection.addRange(range); } document.execCommand("copy"); }; return <div> <button onClick={onClick}>copy</button> <div id="select-div"> <input /> <span>test2: 3</span><span>test3: 94</span></div> </div> };
3. 優(yōu)缺點
① 優(yōu)點
使用方便;
各種瀏覽器都支持;
② 缺點
只能將選中的內容復制到剪貼板;
同步操作,如果復制/粘貼大量數據,頁面會出現(xiàn)卡頓。
到此這篇關于JavaScript實現(xiàn)一鍵復制文本功能的示例代碼的文章就介紹到這了,更多相關JavaScript一鍵復制文本內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Web js實現(xiàn)復制文本到粘貼板
- 使用js實現(xiàn)復制功能
- 使用?JS?復制頁面內容的三種方案
- JavaScript實現(xiàn)一鍵復制內容剪貼板
- js復制文本到粘貼板(Clipboard.writeText())
- JS實現(xiàn)一鍵復制
- Vue中使用highlight.js實現(xiàn)代碼高亮顯示以及點擊復制
- js實現(xiàn)復制粘貼的兩種方法
- JavaScript+Html5實現(xiàn)按鈕復制文字到剪切板功能(手機網頁兼容)
- JS實現(xiàn)復制內容到剪貼板功能兼容所有瀏覽器(推薦)
- js實現(xiàn)點擊復制當前文本到剪貼板功能(兼容所有瀏覽器)
- 簡單實現(xiàn)兼容各大瀏覽器的js復制內容到剪切板
- JavaScript 實現(xiàn)完美兼容多瀏覽器的復制功能代碼
- 兼容主流瀏覽器的JS復制內容到剪貼板
- js實現(xiàn)的復制兼容chrome和IE
- 兼容所有瀏覽器的js復制插件Zero使用介紹
- 用js將內容復制到剪貼板兼容瀏覽器
- js復制網頁內容并兼容各主流瀏覽器的代碼
- JS復制內容到剪切板的實例代碼(兼容IE與火狐)
- JS/FLASH實現(xiàn)復制代碼到剪貼板(兼容所有瀏覽器)
- 多瀏覽器兼容性比較好的復制到剪貼板的js代碼
- GWT中復制到剪貼板 js+flash實現(xiàn)復制 兼容性比較好
- 兼容IE與Firefox的js 復制代碼
- JavaScript 復制功能代碼 兼容多瀏覽器
- 至2023年最好用的兼容多瀏覽器的原生js復制函數copyText
相關文章
BootStrap 輪播插件(carousel)支持左右手勢滑動的方法(三種)
這篇文章主要介紹了BootStrap 輪播插件(carousel)支持左右手勢滑動的方法(三種)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07基于JavaScript實現(xiàn)簡單的隨機抽獎小程序
為了使抽獎程序能夠無需配置平臺直接可以在任何一臺機器上運行,開發(fā)工具和編譯運行工具也能夠盡可能簡單(諸如text文本即可編輯,window系統(tǒng)自帶的瀏覽器即可編譯運行的情況),決定嘗試使用javascript來做2016-01-01javascript實現(xiàn)的LI列表輸出,隔行同色的代碼
javascript實現(xiàn)的LI列表輸出,隔行同色的代碼...2007-10-10layer的prompt彈出框,點擊回車,觸發(fā)確定事件的方法
今天小編就為大家分享一篇layer的prompt彈出框,點擊回車,觸發(fā)確定事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09