无法在文本区域内呈现HTML标记

4

我有一个HTML文件,其中包含textarea输入元素,内容从数据库中获取,其中包括<br/>标记。

我的JSON响应是:
保密协议可以是“双向的”,意味着双方在使用所提供的材料方面都受到限制,也可以限制单方对材料的使用。<br />雇员还可以与雇主签署保密协议或类似的协议。

在渲染时,它不会换行,并将<br/>显示为静态内容。我使用了handlebars {{{content}}} 但没有帮助。


你不能将HTML渲染到文本区域(textarea)中,但是你可以通过将<br>标签替换为\n\r来强制换行。为了确保替换正确,可以使用正则表达式进行替换操作:yourString = yourString.replace(/\r?\n/g, '') - kosmos
你尝试过对HTML进行编码吗?比如<br>变成&lt;br&gt; - Salman A
3个回答

2

嗨,杰克。我尝试将contenteditable=true应用于textarea,但它不起作用。<textarea contenteditable="true"><h3>This is a paragraph. </h3></textarea> - Archana
你好,Archana。正如我之前所写的那样,你不能使用文本区域来解析HTML标签,只能使用纯文本。在我为你编写的示例中,我使用了div - Jack
嘿,杰克...我不想让这个div可编辑。我将其禁用并删除了textarea,取而代之的是使用了一个单独的div。如果我将contenteditable="true",那么我想要显示的内容就可以被用户编辑,这不是我想要的。我也没有添加这个属性。现在使用一个禁用的div已经可以正常工作了。谢谢。 - Archana
那么你就不必“禁用”一个div:只需使用没有特定属性的div :) - Jack

1

0
你可以尝试将 <br /> 替换为 /n。这样应该可以解决你的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接