Javascript 将元素的文本innerHTML复制到剪贴板

Javascript 将元素的文本innerHTML复制到剪贴板,javascript,Javascript,我在stackoverflow中尝试了许多解决方案,但都不起作用 我在运行代码中试用它(chrome 59.0.3071.104 64位) 有什么解决办法吗? 谢谢 编辑:我想我的问题是页面加载(安全浏览器),所有的解决方案都是用户交互的这对我来说很有效 var copyTextareaBtn=document.querySelector('.copybtn'); copyTextareaBtn.addEventListener('click',函数(事件){ var copy_text=d

我在stackoverflow中尝试了许多解决方案,但都不起作用

我在运行代码中试用它(chrome 59.0.3071.104 64位)

有什么解决办法吗? 谢谢


编辑:我想我的问题是页面加载(安全浏览器),所有的解决方案都是用户交互的

这对我来说很有效

var copyTextareaBtn=document.querySelector('.copybtn');
copyTextareaBtn.addEventListener('click',函数(事件){
var copy_text=document.getElementsByTagName(“h4”)[0];
var range=document.createRange();
范围。选择节点(复制文本);
window.getSelection().addRange(范围);
试一试{
var successful=document.execCommand('copy');
var msg=successful?'successful':'successful';
log('复制文本命令为'+msg');
}捕捉(错误){
log('Oops,无法复制');
}
});
复制

要复制的文本数据
这里有一种快速的黑客方法来做你想做的事情,有一个隐藏的输入,我们把数据放进去,然后从那里复制。(文本区域就是要粘贴到其中的位置)

函数copyText(e){
var textToCopy=document.querySelector(e);
var textBox=document.querySelector(“.clipboard”);
setAttribute('value',textToCopy.innerHTML);
textBox.select();
document.execCommand('copy');
}
。隐藏{
位置:固定;
底部:0;
右:0;
指针事件:无;
不透明度:0;
变换:比例(0);
}
要复制的文本数据
复制


这里是第一个示例。我的例子是根据我的需要重新编写的,但你会明白这一点:)

МццПццimk!
函数bufferText(){
const el=document.createElement(“textarea”);
el.value=event.target.innerHTML;
文件.正文.附件(el);
el.select();
文件。执行命令(“副本”);
文件.正文.删除文件(el);
}

console.log(document.queryCommandSupported('copy'))这个命令有什么输出?它写“true”你试过了吗?@Saravana:
window.getSelection().addRange(range)
sellect也成功。可以sellect但不能copy要在页面加载时调用函数,可以使用jQuery
$.ready()
,或者如果不想使用jQuery,可以按照以下说明操作:@JoseGomez:
$('document')。ready(function(){var copy_text=document.getElementsByTagName(“h4”)[0];var range=document.createRange();range.selectNode(复制文本);window.getSelection().addRange(范围);document.execCommand(“复制”);})仍然失败:(再次您好,进一步查看,我在W3规范中发现了以下内容:基本上,它说您不能与剪贴板交互,而是用户触发操作(单击按钮左右)。我认为您无法在document.ready或类似文件中编辑用户剪贴板:(嗯,我想解决方案是添加一个按钮来复制该文本并将打印()复制到pdf。(当单击-不打印该按钮时隐藏该按钮)在Chrome中不起作用:[弃用]Selection.addRange()的行为合并现有范围并删除指定的范围。有关详细信息,请参阅。
var copy_text=document.getElementsByTagName(“h4”)[0];var hidden_=document.createElement(“输入”);hidden_.setAttribute(“类”、“剪贴板隐藏”);copy_text.appendChild(隐藏);copy_text.setAttribute(“类”、“复制_text”);函数copyText(e){var textToCopy=document.querySelector(e);var textBox=document.querySelector(“.clipboard”);textBox.setAttribute('value',textToCopy.innerHTML);textBox.select();document.execCommand('copy');}copyText(.copy_text”);
它也失败了,我认为问题是页面加载。所有解决方案(按钮)页面加载成功这对我也不起作用,为什么不呢?
<h4 align="center">text data to copy</h4>

var copy_text = document.getElementsByTagName("h4")[0];
copy_text.select(); //-> error: select is not a function
var range = document.createRange();
range.selectNode(copy_text);
window.getSelection().addRange(range);
document.execCommand("copy"); //-> clipboard not change
<div onclick="bufferText()">Миньор Перник!</div>
<script>
   function bufferText() {    
        const el = document.createElement("textarea");
        el.value = event.target.innerHTML;
        document.body.appendChild(el);
        el.select();
        document.execCommand("copy");
        document.body.removeChild(el);
   }
</script>