原版代码,部署到服务器失效:
const copyMessage = async (message) => {
if (!message) {
ElMessage.warning('短信内容为空');
return;
}
let textToCopy = message;
// 如果 copyrule 不为空,则提取匹配的内容
if (copyrule.value) {
const regex = new RegExp(copyrule.value);
const match = message.match(regex);
if (match && match[1]) {
textToCopy = match[1]; // 提取 (.*) 匹配的内容
} else {
ElMessage.warning('未找到匹配的内容');
return;
}
}
// 复制到剪贴板
try {
await navigator.clipboard.writeText(textToCopy);
ElMessage.success('内容已成功复制到剪贴板');
} catch (error) {
ElMessage.error('复制失败,请稍后重试');
}
};
修改代码为:
const copyMessage = (message) => {
if (!message) {
ElMessage.warning('短信内容为空');
return;
}
let textToCopy = message;
// 如果 copyrule 不为空,则提取匹配的内容
if (copyrule.value) {
const regex = new RegExp(copyrule.value);
const match = message.match(regex);
if (match && match[1]) {
textToCopy = match[1]; // 提取 (.*) 匹配的内容
} else {
ElMessage.warning('未找到匹配的内容');
return;
}
}
// 创建一个 textarea 元素
const textarea = document.createElement('textarea');
textarea.value = textToCopy;
document.body.appendChild(textarea);
textarea.select();
try {
const successful = document.execCommand('copy');
if (successful) {
ElMessage.success('内容已成功复制到剪贴板');
} else {
ElMessage.error('复制失败,请稍后重试');
}
} catch (err) {
ElMessage.error('复制失败,请稍后重试');
}
document.body.removeChild(textarea);
};
不过需要注意的是,document.execCommand('copy')
已经逐渐被弃用,并且在某些现代浏览器中可能存在兼容性问题。