如何在文本节点中保留空格

How to preserve white space in a textnode?

本文关键字:保留 空格 节点 文本      更新时间:2023-09-26

我正在拦截一个粘贴事件并使用textNodes清除它中的任何html。

工作得很好,除了它将所有空格减少到一个空格,并完全忽略新行。例如,如果用户要粘贴

"你好世界

然后它会粘贴为"你好世界!

如何保留空格和新行?任何javascript,jquery或css技巧都会很棒。这是我的代码:

iframe.contentWindow.focus()
var sel, range;
if (iframe.contentWindow.getSelection) {
    sel = iframe.contentWindow.getSelection();
    if (sel.getRangeAt && sel.rangeCount) {
        range = sel.getRangeAt(0);
        range.deleteContents();}
text = window.clipboardData.getData("Text");
frag = iframe.contentDocument.createTextNode(text);
range.insertNode(frag);

我遇到了同样的问题,并且能够在上面的评论中根据nnnnnn的建议来解决它。

.range_class{
    white-space: pre;
}

其中.range_class是要插入文本节点的元素的 css 类。