網上見到了好多處理方式, 嘗試中發(fā)現(xiàn)很多都會有各種問題, 目前覺得比較簡便的實現(xiàn)方式有兩種:
1. 使用document.execCommand api 實現(xiàn)
目前常用的主流瀏覽器都兼容
- 注意:
- document.execCommand()方法只適用于input, textarea元素
- 用來copy其文本的input元素, 千萬不要設置為隱藏文本域, 如: type="hidden"; 會導致文本無法復制
- 代碼
// 準備文本
const text = '復制個錘子'
// 創(chuàng)建input元素
const input = document.createElement('input')
// 解決在移動端進行復制時產生的白屏抖動問題
input.setAttribute('readonly', 'readonly')
// 得到文本
input.setAttribute('value', text )
// 添加元素
document.body.appendChild(input)
// 選擇復制對象
input.select()
// 進行復制
if (document.execCommand('copy')) {
document.execCommand('copy')
}
console.log('復制成功')
document.body.removeChild(input)