由于业务只有复制,所以需要粘贴的同志们自己操作哈!
/**
* 需要注意 navigator.clipboard.writeText 这个API在本地开发环境好用,打包后线上环境报错,不知道为什么我是 vue3+TS
*/
/**
* @param text 要复制的文本
*/
const copy = (text) => {
if (navigator.clipboard) {
navigator.clipboard
.writeText(text)
.then(() => {
console.log('复制成功')
})
.catch(() => {
console.log('复制失败,请手动复制')
})
} else {
const textArea = document.createElement('textarea')
textArea.value = text
// 使textarea不在viewport,同时设置不可见
document.body.appendChild(textArea)
textArea.focus()
textArea.select()
new Promise((resolve, reject) => {
// 执行复制命令并移除文本框
document.execCommand('copy') ? resolve() : reject()
textArea.remove()
})
.then(() => {
console.log('复制成功')
})
.catch(() => {
console.log('复制失败,请手动复制')
})
}
}