34

我正在尝试使用 IMAP 显示电子邮件。但是,当电子邮件是文本时,换行符 \n 无法正确显示。我宁愿不将它们转换为中断 < br /> 因为如果用户想要回复该电子邮件,它现在将是 HTML 而不是纯文本。是否有一个javascript函数可以在不更改代码的情况下将其显示为换行符?

4

3 回答 3

54

HTML/CSS 怎么样?如果你把你的文本放在一个<pre>标签里,它会完全按照原来的样子显示所有换行符。或者,您可以通过将 CSS 样式white-space:pre应用于任何元素来实现相同的效果。

不要忘记仍然对其进行 HTMLencode(<to&lt;等),否则它将在第一个尖括号处全部分解。

于 2012-10-29T09:20:30.250 回答
16

只需添加此white-spacecss 样式属性即可呈现多行文本:

.multiline
{
   white-space: pre-wrap;
}

进而 :

<div class="multiline">
  my
  multiline
  text
</div>

现在换行符将像 br 元素一样呈现。

于 2018-05-27T15:51:53.240 回答
3

空白 CSS 工作正常,但用于跨浏览器兼容性

.abc {
  word-wrap: break-word;      /* IE 5.5-7 */
  white-space: pre-wrap;      /* Modern browsers */
}

你的 HTML

<div class="abc">
 Lorem 
 Ipsum 
 is 
 simply 
 dummy
</div>

MDN 来源

于 2019-12-03T12:22:51.327 回答