引入js公共方法
export async function copyToClipboard(text, options = {}) {
const {
showMessage = true,
onSuccess,
onError,
} = options
// 优先使用新的 Clipboard API
if (navigator.clipboard && window.isSecureContext) {
try {
await navigator.clipboard.writeText(text)
if (showMessage) {
showCopyNotification(‘success’, ‘复制成功’)
}
onSuccess && onSuccess()
return true
} catch (error) {
return copyByExecCommand(text, showMessage, onSuccess, onError)
}
} else {
// 不支持 Clipboard API,直接使用 execCommand
return copyByExecCommand(text, showMessage, onSuccess, onError)
}
}
/**
使用 execCommand 方式复制文本(降级方案)
@private
*/
function copyByExecCommand(text, showMessage, onSuccess, onError) {
try {
const textarea = document.createElement(‘textarea’)
textarea