将从电子邮件复制的文本粘贴到contenteditable div中会添加换行符

时间:2017-08-23 19:52:12

标签: html contenteditable

我有一个问题/问题,即将文本从电子邮件复制/粘贴到可信的DIV中。我搜索了谷歌,当然还有StackOverflow,但没有发现任何类似的问题。 (也许我没有使用最好的搜索令牌来找到解决方案。)

我有一个令人满意的div。最近,我收到了一些用户无法粘贴到div中的麻烦文本。我从我的Thunderbird收件箱中复制了它。这是文字:

  

批次十二A(12A),第三十二节(32),STONEWALL村,如细分契约,奉献假期,地役权,从属关系和部分释放,记录为工具编号201708210099999(平台编号201708210099999),其中弗吉尼亚州乔治王子县的土地记录。

当我将其粘贴到我的div中时,它在页面上看起来很好;但是当我使用浏览器的Inspect Element时,我看到换行符已插入到文本中。这是一个问题,因为我的处理在保存数据时存储这些换行符。 Snapshot of Developers' Tools showing linefeeds have been added

我的电子邮件收件箱中不存在这些换行符。可以肯定的是,我甚至在十六进制编辑器中查看了内容,并确认文本中没有CR和LF。

如果我将文本粘贴到sublime中,它看起来很正常;如果我然后从Sublime复制/粘贴到我的div,一切都很好。它只是从我的电子邮件复制到我的div,我看到了这个问题。

我已经在Chrome和Firefox中重现了这个问题,甚至在jsFiddle中也是如此。

HTML:

<div contenteditable="true" id="myDiv"></div>

CSS:

#myDiv {
  border: 1px solid grey;
  width: 500px;
}

jsFiddle:https://jsfiddle.net/x3x6vnxp/

PASTE功能的某些功能会根据COPY的执行位置而有所不同吗?更重要的是,如何防止浏览器添加这些新行?我不能简单地删除所有换行符,因为用户可能希望使用合法的换行符复制/粘贴文本。

提前感谢您的任何帮助。

0 个答案:

没有答案