编辑:不是重复
实际上,甚至提到了标记为重复的问题并在此处链接。问题的标题和目的彼此完全不同。另一个问题的答案之一(可以说是用来回答这个问题)是出于完全不同的原因(与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", false, 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>
答案 0 :(得分:2)
使用命令insertText
代替命令insertHTML
。