Javascript 从剪贴板中的多个div复制多个文本
因此,我在HTML文件中嵌套了Javascript 从剪贴板中的多个div复制多个文本,javascript,html,copy,paste,Javascript,Html,Copy,Paste,因此,我在HTML文件中嵌套了div标记。我试图从每个div标签复制某些文本。经过几个小时的搜索,我终于找到了有效的方法。解决方案如下: <html> <body> <div id="a" onclick="copyDivToClipboard()"> Click to copy </div> <script>
div
标记。我试图从每个div
标签复制某些文本。经过几个小时的搜索,我终于找到了有效的方法。解决方案如下:
<html>
<body>
<div id="a" onclick="copyDivToClipboard()"> Click to copy </div>
<script>
function copyDivToClipboard() {
var range = document.createRange();
range.selectNode(document.getElementById("a"));
window.getSelection().removeAllRanges(); // clear current selection
window.getSelection().addRange(range); // to select text
document.execCommand("copy");
window.getSelection().removeAllRanges();// to deselect
}
</script>
</body>
</html>
在评论了我找到的解决方案后,他建议我查看Range.setStart()
和Range.setEnd()
。但我就是不知道如何应用这些,因为我对Javascript
相对较新
另外,这几个
span
标记用于不同的类进行样式设置。我对您的代码进行了一些修改,请查看一下,看看这是否有帮助
var elements=document.getElementsByClassName(“parentDiv”);
数组.from(元素).forEach(函数(元素){
元素。addEventListener('click',copyTextToClipboard);
});
函数copyTextToClipboard(){
var selection=window.getSelection();
var range=document.createRange();
让dataToCopy=this.getElementsByClassName('text_-to_-copy');
范围。选择节点内容(数据复制[0]);
selection.removeAllRanges();
选择。添加范围(范围);
文件。执行命令(“副本”);
window.getSelection().removeAllRanges()
}
我最喜欢的演员是小罗伯特·唐尼。
我最喜欢的演员是汤姆·克鲁斯
我最喜欢的演员是休·杰克曼
我最喜欢的演员是瑞安·戈斯林
如果我理解正确,您想用text\u to\u copy
类复制元素
中的所有文本吗?是的,谢谢。这很好用。在函数窗口的最后一行中,可以添加getSelection().removeAllRanges()
,以取消选择看起来不错的选项。
<div>
<div onclick="copyTextToClipboard()">
<span>My favorite actor is <span class="text_to_copy">Robert Downey, Jr.</span></span>
</div>
<div onclick="copyTextToClipboard()">
<span>My favorite actor is <span class="text_to_copy">Tom Cruise</span></span>
</div>
<div onclick="copyTextToClipboard()">
<span>My favorite actor is <span class="text_to_copy">Hugh Jackman</span></span>
</div>
<div onclick="copyTextToClipboard()">
<span>My favorite actor is <span class="text_to_copy">Ryan Gosling</span></span>
</div>
</div>