如何在粘贴“文本/纯文本”时保持换行符?

cbd*_*per 4 html javascript

编辑:不是重复的

事实上,甚至在这里提到并链接了标记为重复的问题。这些问题的标题和目的完全不同。另一个问题的答案之一,可以说是用来回答这个问题的,是出于完全不同的原因(与 IE 的兼容性),并且很难被理解为这个问题的答案。


原问题

我从这个Javascript 技巧中获得了以下代码,用于在 execCommand 中“粘贴为纯文本”

我按预期工作。它给了我纯文本。

但是,虽然我想摆脱所有文本格式,但我只想保留复制文本的换行符?有没有办法修复此代码以实现此行为?

注意:举个例子,我们在 Stack Overflow 上写我们的问题的问题编辑器似乎就是这样工作的。摆脱一切,但尊重换行符。

// ALLOW TEXT ONLY ON PASTE
  function onPaste(e) {
    e.preventDefault();
    // GET TEXT REPRESENTATION OF CLIBOARD DATA
    const text = (e.originalEvent || e).clipboardData.getData('text/plain');
    // INSERT TEXT MANUALLY
    document.execCommand("insertHTML", false, text);
  }
Run Code Online (Sandbox Code Playgroud)

片段

// ALLOW TEXT ONLY ON PASTE
  function onPaste(e) {
    e.preventDefault();
    // GET TEXT REPRESENTATION OF CLIBOARD DATA
    const text = (e.originalEvent || e).clipboardData.getData('text/plain');
    // INSERT TEXT MANUALLY
    document.execCommand("insertHTML", false, text);
  }
Run Code Online (Sandbox Code Playgroud)
function onPaste(e) {
    e.preventDefault();
    // GET TEXT REPRESENTATION OF CLIBOARD DATA
    const text = (e.originalEvent || e).clipboardData.getData('text/plain');
    // INSERT TEXT MANUALLY
    document.execCommand("insertHTML", false, text);
}

document.getElementById("root").addEventListener("paste", onPaste);
Run Code Online (Sandbox Code Playgroud)
#root {
  border: 1px dotted blue;
  
}
Run Code Online (Sandbox Code Playgroud)

Nin*_*rry 6

使用命令insertText而不是命令insertHTML