从JavaScript复制和粘贴文本

从JavaScript复制和粘贴文本,javascript,Javascript,我试图弄清楚,如何从JavaScript复制字符串和粘贴 此代码示例: function copyLink() { var copyText = document.getElementById("myInput"); copyText.select(); copyText.setSelectionRange(0, 99999); document.execCommand("copy"); } 从myInputvalue复制: <

我试图弄清楚,如何从JavaScript复制字符串和粘贴

此代码示例:

function copyLink() {
  var copyText = document.getElementById("myInput");
  copyText.select();
  copyText.setSelectionRange(0, 99999);
  document.execCommand("copy");
} 
myInput
value
复制:

  <input type="text" value="ttps://site.org/" id="myInput">
 <button onclick="copyText()">Copy text</button>
它位于
.js
中,允许用户复制/粘贴:

function copyText() {
   var text = "long text...";
   ...
} 

它看起来很简单,但似乎我搜索不正确,因为我找不到方法。

作为一个快速修复,您可以将要复制的值粘贴到输入字段(甚至是隐藏字段)中,然后以相同的方式复制

下面是一个代码笔示例:

函数copyText(){
document.getElementById('hidden')。value=new Date().toLocaleString();

var copyText=document.getElementById('hidden'); copyText.select(); document.execCommand('copy'); }

复制

粘贴到此处:
最好的方法是创建一个虚拟元素,复制内容并将其从dom中删除

// Create a dummy input
var dummy = document.createElement("input");

// Inject the content
dummy.value=copyText;

// Add it to the dom
document.body.appendChild(dummy);

// Select it
dummy.select();

// Copy the content
document.execCommand("copy");

// Clean the dom
document.body.removeChild(dummy);

您可以使用异步剪贴板API:

async function copy() {
  try {
    await navigator.clipboard.writeText(input.value);
    console.log('Value copied to clipboard');
  } catch (err) {
    console.error('Failed to copy: ', err);
  }
}

有关更多详细信息,请参见。

var copyText=document.getElementById(“myInput”)。值可能会执行此操作。您也可以使用。@user3791775您好,您的意思是添加到myInput中,可以提供一些示例document.getElementById(“myInput”)返回html、document.getElementById(“myInput”);。值返回输入的值。我不确定代码的其余部分是否正常(select和setSelectionRange部分)您好,如果我没有弄错,我必须隐藏myInput文档。getElementById(“myInput”).style.display=“none”;但是这样它就不会复制了,我会用不透明度0来隐藏它。