【问题标题】:Text not showing after < in page页面中 < 之后的文本未显示
【发布时间】:2021-04-16 07:59:03
【问题描述】:

我有一个示例文本如下 -

< p>pppp </ p>SP717171 MISSEDAb, S<Dtest 123333

在 div 中渲染上述文本时,S&lt; 之后的内容被删除。在检查它时,浏览器似乎将其视为一个标签,但它是一个无效的 HTML 标签。如何保留此类内容并仅按原样处理有效的 HTML 标记?

例如在这种情况下,我希望&lt; p&gt;pppp &lt;/ p&gt; 显示为pppp,并且应该显示S&lt; 之后的内容。

【问题讨论】:

标签: javascript html jquery grails


【解决方案1】:

要在 HTML 中输出 &amp;lt;&amp;gt; 字符,并防止它们被解释为 HTML 标记的一部分,您需要对它们进行 HTML 编码。在这种情况下分别使用&amp;lt;&amp;gt;

&lt;p&gt;pppp&lt;/p&gt;SP717171 MISSEDAb, S&amp;lt;Dtest 123333

【讨论】:

  • 我没有手动设置这个文本并从数据库中获取它,所以有没有办法确定哪个 ? 类似
  • 并非如此,因为任何 HTML 解析器都会得到与您在浏览器中看到的结果相同的结果 - &amp;lt;&amp;gt; 之间的所有内容都被解释为 HTML,无论它是否有效。您需要在将输入保存到数据库之前对其进行清理/HTML 编码。还要非常小心地将 HTML 插入到数据库中,因为这样会为 XSS 攻击打开大门。
猜你喜欢
  • 2018-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多