封装了一个实现复制到剪切板的函数,如下
//text 需要复制到剪切板的数据
export function copyText(text, callback) {
if (navigator.clipboard) {
console.log('navigator.clipboard: ');
navigator.clipboard.writeText(text).then(res => {
callback();
});
} else {
console.log('execCommand: ');
var textBox = document.createElement('input');
textBox.value = text;
document.body.appendChild(textBox);
textBox.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
textBox.remove();//清除DOM
callback();
}
}
navigator.clipboard好像是本地开发时无法使用,必须是https安全协议,所以可以进行判断,document.execCommand没有要求,虽然document.execCommand方法已经被弃用,但是还能使用,不过在有其他方法的情况下,优先使用其他方法