在javascript中document.execCommand()方法是將文字復(fù)制到粘貼板灭忠,然后復(fù)制到其他地方使用款慨。具體的實(shí)現(xiàn)方法可以如下:
copyToClipboard(txt = '') {
let iscopy = false;
if (document) {
let textArea = document.createElement('textarea');
textArea.style.position = 'fixed';
textArea.style.top = 0;
textArea.style.left = 0;
textArea.style.width = '2em';
textArea.style.height = '2em';
textArea.style.padding = 0;
textArea.style.border = 'none';
textArea.style.outline = 'none';
textArea.style.boxShadow = 'none';
textArea.style.background = 'transparent';
textArea.value = txt;
document.body.appendChild(textArea);
textArea.select();
try {
document.execCommand('copy');
iscopy = true;
} catch (err) {
console.log('不能使用這種方法復(fù)制內(nèi)容' + err.toString());
}
document.body.removeChild(textArea);
}
return iscopy;
}
注意
- 1.解決兼容性問題(根據(jù)不同瀏覽器用不同的實(shí)現(xiàn)方式谭确,這里是谷歌瀏覽器刊橘,該方法最新瀏覽器基本兼容)
- 2.不能用JS“直接”調(diào)用execCommand('copy')讲岁,需要放到某一個(gè)由用戶觸發(fā)的事件響應(yīng)函數(shù)內(nèi),而且之間不能被異步過程隔開酵幕,諸如 setTimeout扰藕。