javascript - 如何保留文本节点中的空白?

标签 javascript jquery html css nodes

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

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

" Hello World

!”

然后它会粘贴为“hello world!”

如何保留空白和新行?任何 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 类。

关于javascript - 如何保留文本节点中的空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28120585/

相关文章:

javascript - 如何避免嵌套 coffeescript 中的这种返回?

php - 如何使名称变量可点击(mysqli)?

javascript - react-slick 旋转木马通过滚动事件循环播放幻灯片 - react js, javascript

javascript - 我可以创建自定义 Ember 数据方法吗?

javascript - 下拉值隐藏显示

html - 内联 block : cannot display elements horizontally

Javascript:滚动到表格中的第 n 行?

javascript - 通过比较 jquery 中的数据属性来交换元素

javascript - vanilla js 通过 XMLHttpRequest by div id 相当于 "Loading Page Fragments"

jquery - jQuery mouseup 事件适用于触摸设备吗?