【问题标题】:Print raw html strings on EJS在 EJS 上打印原始 html 字符串
【发布时间】:2021-01-11 04:18:21
【问题描述】:

我将 express.js 与 EJS 模板一起使用,我正在尝试做这样的事情:

<%= "<a href='#'>Test</a>" %>

但它会打印:

&lt;a href='#'&gt;Test&lt;/a&gt;

如何打印“html 安全”字符串?

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    这是根据文档的可用选项

    1. %> 普通的结束标签
    2. -%> 修剪模式('newline slurp')标签,在换行符之后修剪
    3. _%> ‘Whitespace Slurping’ 结束标签,删除其后的所有空格

    看起来您需要的选项是数字 4

    【讨论】:

      【解决方案2】:

      对于 ejs 中的原始输出 html,您可以使用此代码

      <%- "<a href='#'>Test</a>" %>
      

      【讨论】:

        【解决方案3】:

        你应该在任何地方使用 html 代码,并且只在你需要动态数据的地方使用 EJS 标签。示例:

        <a href='<%= user.id %>'><%= user.name %</a>
        

        要具体回答您的问题,您可以使用&lt;%- "&lt;tags_here&gt;" %&gt; 输出未转义 HTML 数据。

        【讨论】:

        • 问题是,当我这样做时: 它也会这样打印
        • 啊,如果你想让 html 不被转义,你应该这样做
        • 没问题,有关 EJS 的更多信息,请查看 github repo:github.com/visionmedia/ejs
        • 您仍然可以回答这个问题。如果其他人来看这个问题,希望了解如何打印未转义的内容怎么办?
        • 有没有类似于 php 的 echo 的东西,可以让您从 &lt;% %&gt; 语句中打印数据?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-12
        • 2021-06-25
        • 2021-12-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多