gpt4 book ai didi

javascript - 将自己的 .innerHTML 文本内容复制到剪贴板的 HTML 按钮

转载 作者:行者123 更新时间:2023-11-30 14:03:30 25 4
gpt4 key购买 nike

有谁知道如何使用 JavaScript 制作将自己的文本复制到剪贴板的按钮?

我的代码:

function myFunction() {
var copyText = document.getElementByClassName("copy");

copyText.select();
document.execCommand("copy");
}
<button class="copy">Click to copy this text data to clipboard.</button>
<button class="copy">Click to copy this different text data to clipboard.</button>

最佳答案

select<input> 中的文本上定义或 <textarea>仅元素。您可以动态创建节点元素并设置其 innerText使用按钮的值:

const copyToClipboard = text => {
const ta = document.createElement("textarea");
ta.textContent = text;
document.body.appendChild(ta);
ta.select();
document.execCommand("copy");
document.body.removeChild(ta);
};

for (const elem of document.querySelectorAll(".copy")) {
elem.addEventListener("click", e => {
copyToClipboard(e.target.innerText);
});
}
<button class="copy">Click to copy this text data to clipboard.</button>
<button class="copy">Click to copy this different text data to clipboard.</button>

存在一个更优雅的选项并且与 Chrome/FF 兼容: Clipboard.writeText .

你需要 "clipboard-write"允许框架执行复制,这在下面的堆栈片段中可能不起作用。

for (const elem of document.getElementsByClassName("copy")) {
elem.addEventListener("click", e =>
navigator.clipboard.writeText(e.target.innerText)
.catch(err => console.error(err))
);
}
<button class="copy">Click to copy this text data to clipboard.</button>
<button class="copy">Click to copy this different text data to clipboard.</button>

关于javascript - 将自己的 .innerHTML 文本内容复制到剪贴板的 HTML 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55883346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com