在页面中呈现带有 HTML 标记的文本 [重复]

Posted

技术标签:

【中文标题】在页面中呈现带有 HTML 标记的文本 [重复]【英文标题】:Render text with HTML tags in page [duplicate] 【发布时间】:2020-03-12 21:42:59 【问题描述】:

我有这些数据:

 
  "text":"<h1>hello</h1><p style=backgroundColor:blue>Paragraph text</p>",
  "type":"bold"
,

但是当我在我的页面中显示它时,它会显示标签 h1 和 p 以及样式。我怎样才能打印这个变量,并让标签也能正常工作?

这是我的 js:

<div key=index>
    descriere.type === "bold" ? (
    <p style= color: "red" >
        data.text
    </p>
    ) : (
    <p style= color: "purple" >
        data.text
    </p>
    )
</div>

我也尝试在 div 标签内打印它,同样的问题。 有什么想法吗?

【问题讨论】:

【参考方案1】:

您可以使用dangerouslySetInnerhtml 属性来呈现HTML。这是working example

【讨论】:

【参考方案2】:

尝试使用dangerouslySetInnerHTML,它广泛用于 gatsby,您可以在其中查询降价内容。

<div key=index>
  descriere.type === 'bold' ? (
    <p style= color: 'red' >
      <div dangerouslySetInnerHTML=__html: data.text />
    </p>
  ) : (
    <p style= color: 'purple' >
      <div dangerouslySetInnerHTML=__html: data.text />
    </p>
  )
</div>

【讨论】:

以上是关于在页面中呈现带有 HTML 标记的文本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从一页打印html不会显示所有带有python和urllib2的源页面[重复]

如何Angularjs1.3在页面中输出带Html标记的文本

将来自 Json 响应的 HTML 标记渲染到模板文字

我应该使用带有 render 属性的 ui:fragment 来有条件地在带有 JSF 2.2 的 Facelets 中呈现 HTML 标记吗?

最佳实践:加载呈现的 html 或 json?

带有文本框和 JS 的提交按钮