Javascript 是否将静态文本复制到剪贴板?

Javascript 是否将静态文本复制到剪贴板?,javascript,Javascript,我需要创建一个脚本,将特定文本复制到剪贴板的用户(从任何设备/操作系统/浏览器)。 我找到了这个JS库。但是我的javascript不是很好,所以我的问题是如何在我的脚本中使用这个库,这或多或少是这样的 <p id="text">text to copy</p> <button onclick="CopyToClipboard()">Copy</button> <script> funct

我需要创建一个脚本,将特定文本复制到剪贴板的用户(从任何设备/操作系统/浏览器)。 我找到了这个JS库。但是我的javascript不是很好,所以我的问题是如何在我的脚本中使用这个库,这或多或少是这样的

<p id="text">text to copy</p>
<button onclick="CopyToClipboard()">Copy</button>

<script>
   function CopyToClipboard(){
       What i put here?
   };
</script>
要复制的文本

复制 函数CopyToClipboard(){ 我在这里放了什么? }; 使用zeroclipboard或其他更简单方法的帮助?
如果它能在尽可能多的设备上工作,那就太好了!非常感谢

我想这就是你要找的。不需要使用插件来完成你想要的简单的事情。有一种方法允许您复制文本“execCommand(“copy”);”

函数myFunction(){
var copyText=document.getElementById(“myInput”);
copyText.select();
文件。执行命令(“副本”);
警报(“复制的文本:+copyText.value”);
}


复制文本
如果要从
p
标记或
div
标记复制静态文本,请使用下面的代码

var selectText = document.getElementById('text');
var range = document.createRange();
range.selectNode(selectText);
window.getSelection().addRange(range);
document.execCommand('Copy');
window.getSelection().removeAllRanges();
  • 这意味着您可以在这里为文本创建范围并选择节点
  • 之后,从该范围中获取选择
  • 最后执行命令
    Copy
    并清除范围
如果要从输入框复制文本,请使用下面的

  var selectText = document.getElementById('text');
  selectText.select();
  document.execCommand("copy");

我添加了评论来解释发生了什么

函数CopyToClipboard(){
//获取要复制的文本
var selectText=document.getElementById('text').innerHTML;
//创建输入
var input=document.createElement('input');
//将其值设置为要复制的文本,输入类型无关紧要
input.value=选择文本;
//将其添加到文档中
document.body.appendChild(输入);
//在执行类似于用户的选择的输入上调用select()
input.select();
//执行copy命令,这就是我们向文档添加输入的原因
文件。执行命令(“副本”);
//从文档中删除输入
document.body.removeChild(输入);
}
要复制的文本


复制谢谢,但我试图用style=“display:none;”隐藏输入,但当我这样做时,它不会复制文本。我可以隐藏要复制的文本吗?@RiccardoFarina我编辑了我的答案,但就我所见,即使没有显示输入,它仍然会将文本输出到警报中。谢谢!它在iPhone上工作吗?我试过了,但似乎不起作用!你是说Safari,我不知道我没有测试它。在iPhone和Safari的Chrome上测试,不起作用,我要提出一个新问题:)谢谢