-
尝试使用现代浏览器的 Clipboard API:
- 使用
navigator.clipboard.writeText方法将文本写入剪贴板。 - 如果成功,显示成功消息。
- 如果失败,进入备用方案。
- 使用
-
备用方案:
- 创建一个隐藏的
<textarea>元素,并将文本赋值给它。 - 将
<textarea>元素添加到文档中并选中其内容。 - 使用
document.execCommand('copy')方法尝试复制选中的文本。 - 根据复制结果显示相应的成功或失败消息。
- 创建一个隐藏的
/**
* @description: 实现点击复制功能
* @param {string} text
* @return {*}
*/
export async function copyText(text: string) {
try {
await navigator.clipboard.writeText(text)
ElMessage.success('文本已成功复制到剪贴板')
} catch (err) {
const textarea = document.createElement('textarea')
textarea.value = text
document.body.appendChild(textarea)
textarea.select()
try {
// 尝试执行复制操作
const success = document.execCommand('copy')
if (success) {
ElMessage.success('复制成功')
} else {
ElMessage.error('复制失败')
}
} catch (error) {
ElMessage.error('复制失败,请手动复制文本')
}
}
}
328

被折叠的 条评论
为什么被折叠?



