Javascript 从<;p></p>;使用按钮和JS连接到剪贴板?

Javascript 从<;p></p>;使用按钮和JS连接到剪贴板?,javascript,html,Javascript,Html,我的html中包含以下文本: <button>copy text!</button> <p>blah</p> 复制文本! 废话 我希望在单击按钮时将p标记中的文本复制到剪贴板。《太阳报》的每一篇在线教程都谈到使用textArea标签,但我不想使用这些标签。为什么不能通过这种方式直接从p标签中复制呢?可以很容易地使用。他们有一个很好的文档供您参考。我发现了这个解决方法,它看起来像是对html的犯罪,但它确实有效。 本质上,我必须使用一个texta

我的html中包含以下文本:

<button>copy text!</button>
<p>blah</p>
复制文本!
废话


我希望在单击按钮时将p标记中的文本复制到剪贴板。《太阳报》的每一篇在线教程都谈到使用textArea标签,但我不想使用这些标签。为什么不能通过这种方式直接从p标签中复制呢?

可以很容易地使用。他们有一个很好的文档供您参考。

我发现了这个解决方法,它看起来像是对html的犯罪,但它确实有效。 本质上,我必须使用一个textarea,使用标记的内容创建它,然后在创建之后立即销毁textarea元素。这感觉很可笑

function copyElementText(id) {
  var text = document.getElementById(id).textContent
  var elem = document.createElement("textarea");
  x = document.body.appendChild(elem);
  elem.value = text;
  elem.select();
  document.execCommand("copy");
  x.remove()
  alert("Copied the text: " + text);
}

您现在可以使用剪贴板API写入剪贴板,而无需使用textarea元素(请注意,它当前处于工作草稿状态,除IE外,所有常用浏览器都支持它):

复制文本!
废话

const-button=document.querySelector('button');
const elementToCopy=document.querySelector('p');
const textToCopy=elementToCopy.innerText;
功能副本(文本){
navigator.clipboard.writeText(文本)
}
按钮。addEventListener('单击',()=>{
复制(文本复制)
})

您现在应该能够将
p
的内容复制到剪贴板上。

这恐怕不行,因为select()失败,因为目标文本需要来自textarea标记。p标签在这种情况下失败。谢谢!我找到了一个解决方法,但无论如何都会签出。