之前遇到這種需求都是選擇用插件,但是有的插件隻對input,textarea等元素管用,比如clipboard.js,可以滿足需求,需要的可以去看看。
clipboard.js: https://clipboardjs.com/
這次主要說js對一些不是input,textarea的元素進行内容複制,其實原理很簡單,就是用js建立一個input,然後把内容指派給input,然後通過
input.select()
進行選中,再通過浏覽器自帶的
document.execCommand('copy')
進行複制。看代碼
copydizhi(index){
var text =document.getElementById(index).innerText; //擷取span元素的值
var input = document.createElement('input'); //建立一個input
input.setAttribute('id', 'copyInput'+index); //input賦id
input.setAttribute('value', text); //将值賦給input
document.getElementsByTagName('body')[0].appendChild(input); //在body中加入input
document.getElementById('copyInput'+index).select(); //選中input
if (document.execCommand('copy')) { //複制
alert('複制成功');
}
document.getElementById('copyInput'+index).remove(); //移除input
},