如何在 DOM 上显示由 API 调用返回的 HTML 响应?

Posted

技术标签:

【中文标题】如何在 DOM 上显示由 API 调用返回的 HTML 响应?【英文标题】:How to display HTML response on DOM, returned by an API call? 【发布时间】:2021-07-05 23:23:34 【问题描述】:

我的 API 调用返回以下 html 响应,我想在 DOM 上将其呈现为 html 标签,而不仅仅是带有 html 标签的文本。

API 响应:<strong>Hello</strong>

如何在 DOM 上呈现:<strong>Hello</strong>

我希望它如何在 DOM 上呈现:Hello

【问题讨论】:

检查我的答案。快乐编码:) 【参考方案1】:

你应该使用dangerouslySetInnerHTML

【讨论】:

谢谢乔里斯。除此之外,我还有其他方法可以实现吗? 这是 React 推荐的方式,但您可以自己创建节点并将其添加到 dom:js const myContent = document.createElement('div'); myContent.innerHTML = "<strong>Hello</strong>"; document.body.appendChild(myContent); 【参考方案2】:

另一种方法是使用innerHTML:

var APIResponse = '<strong>Hello</strong>';
document.getElementById("target").innerHTML = APIResponse;

资源:https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML

【讨论】:

【参考方案3】:

您可以使用react-html-parser

npm install react-html-parser
import React from 'react';
import ReactHtmlParser from "react-html-parser"

const htmlString = '<strong>Hello</strong>';

function App() 
  return (
    <div>
        ReactHtmlParser(htmlString)
    </div>
  );


export default App;

演示:React HTML Parser Example

【讨论】:

【参考方案4】:

您可以使用; html-react-parser

执行以下步骤:

npm install react-html-parser
# or 
yarn add react-html-parser

导入或需要模块:

// ES Modules
import parse from 'html-react-parser';

// CommonJS
const parse = require('html-react-parser');

确保在父元素下渲染解析的相邻元素:

<>
  parse(`<strong>Hello</strong>`)
</>

编码愉快:)

【讨论】:

以上是关于如何在 DOM 上显示由 API 调用返回的 HTML 响应?的主要内容,如果未能解决你的问题,请参考以下文章

javascript DOM拓展

如何在 Store Vuex 中加载 DOM 之前调用 api?

如何将来自API的数据注入DOM [重复]

阿里云调用 API 服务后返回啥结果

AJAX调用在html div中显示api键和值

djangorestframework 可浏览 api:如何显示所有可用的端点 url?