You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现多个不同按钮分别复制对应textarea内容到剪贴板

实现方案

方案1:兼容原有逻辑改造(适配旧版浏览器)

你原来的代码逻辑是写死了目标文本框选择器,只需要把复制逻辑抽成可传入目标选择器的通用函数,再分别绑定两个按钮的点击事件即可,原有功能不受影响:

// 通用复制函数,参数为要复制的目标文本框选择器
function copyToClipboard(targetSelector) {
    let fake = document.createElement("textarea");
    fake.value = document.querySelector(targetSelector).value;
    document.body.appendChild(fake);
    fake.select();
    document.execCommand("copy");
    document.body.removeChild(fake);
    let notice = document.createElement("span");
    notice.className = "notice visible";
    notice.innerHTML = "Text copied to the clipboard!";
    document.body.appendChild(notice);
    setTimeout(() => {
        document.body.removeChild(notice);
    }, 3000);
}

// 绑定原有按钮功能
document.querySelector(".UniCopBtn").addEventListener("click", () => copyToClipboard("#transliterateTextarea"));
// 绑定新增的abcd按钮功能
document.querySelector(".abcd").addEventListener("click", () => copyToClipboard("#xyz"));

方案2:现代浏览器标准实现(更推荐)

document.execCommand已经被官方弃用,更推荐使用原生Clipboard API实现,无需创建临时DOM节点,代码更简洁稳定:

// 通用异步复制函数
async function copyToClipboard(targetSelector) {
    try {
        const copyText = document.querySelector(targetSelector).value;
        await navigator.clipboard.writeText(copyText);
        // 复制成功提示
        let notice = document.createElement("span");
        notice.className = "notice visible";
        notice.innerHTML = "Text copied to the clipboard!";
        document.body.appendChild(notice);
        setTimeout(() => {
            document.body.removeChild(notice);
        }, 3000);
    } catch (e) {
        console.error("复制操作失败:", e);
    }
}

// 绑定两个按钮的点击事件
document.querySelector(".UniCopBtn").addEventListener("click", () => copyToClipboard("#transliterateTextarea"));
document.querySelector(".abcd").addEventListener("click", () => copyToClipboard("#xyz"));

该方案兼容所有主流现代浏览器(Chrome 66+、Firefox 63+、Safari 13.1+)。

内容的提问来源于stack exchange,提问作者SSKhekhaliya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 22:54:00