在转义的html中渲染换行符

时间:2012-10-02 16:11:22

标签: html newline line-breaks

我们有一个默认自动生成的显示消息,但可能会被来自网址的GET变量覆盖。由于我们需要将消息视为用户输入,因此必须将其转义以供显示。但是,我们希望保留包含换行符的功能。

换行符为<br>
这不起作用,因为转义HTML会破坏<br>标记。

换行符为\n
我无法弄清楚如何让\n呈现为换行符。我认为将它放在标签中会正确呈现,但没有运气:http://jsfiddle.net/7L932/

4 个答案:

答案 0 :(得分:7)

转义HTML,然后\n替换为<br>

如果你想使用\ n,我会为你解决你的小提琴http://jsfiddle.net/hr3bg/

答案 1 :(得分:3)

你正在做的事情或多或少都不错,除了你应该放置\n字符(换行符),而不是html中的转义序列(以及Prinzhorn所说的也很有道理,所以我会去投票他。)

答案 2 :(得分:3)

你的理论声音,但\n不是HTML识别的插入新行的方式。它或者显式地(因为我已插入新的.linebreaks元素中)作为标记中的文字返回,或者,如果您使用的某些中间脚本语言 识别\n(就像JS一样),这样做(就像我用你插入的jQuery代码对你的第一个.linebreaks所做的那样。

请参阅我的调整示例:http://jsfiddle.net/barney/7L932/2/

答案 3 :(得分:1)

将包装器HTML css设置为white-space: pre-line对我有用。它启用\ n字符的换行功能