【问题标题】:How can I prevent javascript from copying a line break to clipboard?如何防止 javascript 将换行符复制到剪贴板?
【发布时间】:2021-02-09 13:47:07
【问题描述】:

我找到了一个程序,它允许我将数据从 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>

【问题讨论】:

    标签: javascript copy clipboard line-breaks


    【解决方案1】:

    range.selectNodeContents代替 range.selectNode

    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>

    【讨论】:

      【解决方案2】:

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

      https://jsfiddle.net/sLv9ux50/

      【讨论】:

      • 确实有效,谢谢。只是好奇,如果我坚持使用 DIV,有没有办法在复制时删除最后的换行符?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 2010-10-09
      • 1970-01-01
      相关资源
      最近更新 更多