首页 > 解决方案 > pugjs 渲染转义的 html 和正常的 html

问题描述

例如,pug我将变量作为已经转义的 html 取回line one <br>\nline two <br>\n<p> with paragraph </p>

pug我自己的模板中,我使用!{description}了未转义的 html,例如line one <br> line two <br> <p> with paragraph </p>

但这不是我想要的,我不想tag在视图中显示,而是我想要类似的东西

line one
line two

with paragraph  <!-- this is hard to show -->

我也用谷歌搜索并认为jquery像这样使用会起作用,但不行。

        const gd = !{JSON.stringify(description)};
        $('#des').html(gd).text();

上面仍然显示标签而不是将其用作 html。

有谁知道如何使这项工作?

提前感谢您的任何帮助/建议。

标签: javascripthtmlpughtml-escape-characters

解决方案


这里的问题是,由于它是转义的 HTML,浏览器会这样渲染它。如果您尝试使用 jQuery 在客户端执行此操作,则它需要将未转义的 HTML 作为文本。如果您为它提供转义的 HTML,它无论如何都会呈现为纯文本。

但是,您可以使用 Pug 文件中的一些 javascript 将转义值替换为它们各自的符号。

div#des!=description.replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&quot;/g, '"').replace(/&#039;/g, "'")

此处的类似问题提供了在这种情况下使用的答案。


推荐阅读