这个问题已经在这里有了答案: > Javascript trick for ‘paste as plain text` in execCommand 10个
> Dealing with line Breaks on contentEditable DIV 6个
编辑:不是重复
实际上,这里甚至提到并链接了标记为重复的问题.问题的标题和目的彼此完全不同.另一个问题的答案之一可以说是一个完全不同的原因(与IE兼容),可以被认为可以回答这个问题,并且很难理解为对该问题的答案.
原始问题
我从这个Javascript trick for ‘paste as plain text` in 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);
}
SNIPPET
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",text);
}
document.getElementById("root").addEventListener("paste",onPaste);
#root {
border: 1px dotted blue;
}
<div>Below is a contenteditable DIV</div>
<div id="root" contenteditable>
</div>
<div><br><br>Copy both paragraphs to the contenteditable div</div>
<p>First <b>Paragraph</b></p>
<p>Second Paragraph</p>
最佳答案
使用命令insertText而不是命令insertHTML.
原文链接:https://www.f2er.com/html/530499.html