【发布时间】:2020-09-07 09:20:14
【问题描述】:
所以我在 HTML 文件中嵌套了 div 标签。我试图从每个 div 标签中复制某些文本。经过几个小时的搜索,我终于找到了有效的solution。解决方法如下:
<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>
但由于它使用的是id,它只适用于第一个div。然后我将id 更改为class 但之前找到的解决方案不起作用。下面是我的 HTML 文件:
<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>
在对我找到的解决方案发表评论后,他建议我查看Range.setStart() 和Range.setEnd()。但我只是不知道如何应用这些,因为我对Javascript 比较陌生。
这几个span标签也被用于不同的样式类。
【问题讨论】:
-
如果我理解正确,您想复制
element和text_to_copy类中的所有文本? -
是的,你是对的
标签: javascript html copy paste