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

368yc8dk  于 2023-01-24  发布在  Java
关注(0)|答案(2)|浏览(125)

有人知道如何用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>
pb3s4cty

pb3s4cty1#

select仅在<input><textarea>元素中的文本上定义。您可以动态创建node元素,并使用按钮的值设置其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"权限才能执行复制,这在下面的堆栈代码段中可能不起作用。
一个二个一个一个

qyswt5oh

qyswt5oh2#

超文本:

<button id="btn" onclick="myFunction()">Copy text</button>

联森:

function myFunction() {
  var copyText = document.getElementById("btn");
  navigator.clipboard.writeText(copyText.textContent)
}

相关问题