如何防止 javascript 将换行符复制到剪贴板?

How can I prevent javascript from copying a line break to clipboard?

我找到了一个程序,它允许我将数据从 div 复制到剪贴板。复制时,它会添加一个换行符,即使我的 div 中没有换行符。如何从副本中删除任何换行符。

  function copyDivToClipboard(elem) {
    var range = document.createRange();
    range.selectNode(document.getElementById(elem));
    window.getSelection().removeAllRanges();
    window.getSelection().addRange(range);
    document.execCommand("copy");
    window.getSelection().removeAllRanges();
    
}
<div id='test'>This is a test</div>

<button onclick='copyDivToClipboard("test")'>Copy to clipboard</button>

您正在复制的 div 元素在 Javascript 复制它时包含换行符作为其文本内容的一部分。如果您改为使用 span,您将不会得到带有文本的换行符。

https://jsfiddle.net/sLv9ux50/

而不是 range.selectNode 使用 range.selectNodeContents

function copyDivToClipboard(elem) {
    var range = document.createRange();
    range.selectNodeContents(document.getElementById(elem));
    window.getSelection().removeAllRanges();
    window.getSelection().addRange(range);
    document.execCommand("copy");
    window.getSelection().removeAllRanges();
}
<div id="test">
  This is a test
</div>

<button onclick='copyDivToClipboard("test")'>Copy to clipboard</button>