基于原生JS的复制粘贴功能
第一种
const copyFunc1 = (text) =>{
const input = document.createElement('input');
input.setAttribute('readonly', 'readonly'); // 设置成只读
input.setAttribute('value', text);
document.body.appendChild(input);
const range = document.createRange(); // 创建一个DOM范围对象
range.selectNode(input); // 选中input节点
const selection = window.getSelection();
if (selection.rangeCount > 0) selection.removeAllRanges();
selection.addRange(range);
document.execCommand('copy');
document.body.removeChild(input);
}
第二种
const copyFunc1 = (text) =>{
const textareaEl = document.createElement('textarea');
textareaEl.setAttribute('readonly', 'readonly'); // 防止手机上弹出软键盘
textareaEl.value = text;
document.body.appendChild(textareaEl);
textareaEl.select();
document.execCommand('copy');
document.body.removeChild(textareaEl);
}
原理都差不多,就是新建个input(或textarea)标签,然后把我们想要复制的text设置为input(或textarea)的value,并且选中这个value,调用document.execCommand(‘copy’)进行复制