JS采用await navigator.clipboard.writeText(textToCopy)复制功能部署到服务器后失效,

原版代码,部署到服务器失效:

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') 已经逐渐被弃用,并且在某些现代浏览器中可能存在兼容性问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值