javascript - ReactangerlySetInnerHTML 仅允许特定的 HTML 标签

标签 javascript reactjs html-rendering

在 React 中,我需要获取 JavaScript String 并将其显示为 HTML。我正在使用 dangerouslySetInnerHTML 来完成此操作,但我想通过仅允许特定标签(例如 ulli)来更安全地完成此操作。我怎样才能做到这一点?

在下面的代码中,我只想允许 ulli 标记。

<p
    dangerouslySetInnerHTML={{
    __html: '<ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>'
}}></p>

当我尝试使用 sanitizeHtml 时,我得到以下信息:

./node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js
Module parse failed: Unexpected token (143:21)
You may need an appropriate loader to handle this file type.

最佳答案

有一个名为 sanitize-html 的开源库这正是你想要的。从他们的例子来看:

// Allow only a super restricted set of tags and attributes
const clean = sanitizeHtml(dirty, {
  allowedTags: [ 'b', 'i', 'em', 'strong', 'a' ],
  allowedAttributes: {
    'a': [ 'href' ]
  },
  allowedIframeHostnames: ['www.youtube.com']
});

关于javascript - ReactangerlySetInnerHTML 仅允许特定的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66779699/

相关文章:

reactjs - 是否可以使用 Graph Toolkit 2.0 在 Microsoft Teams 选项卡中进行静默身份验证

javascript - 为什么我需要 2 个 requestAnimationFrame 调用来等待渲染的 dom

javascript - 如何在 Angular/Node.js 应用程序中登录后更新 html header ?

javascript - Chrome 中的完全缓冲视频

javascript - 如何在 Electron js 中将消息打印到 openDevTools 的控制台?

javascript - X 轴格式

javascript - 为什么我的 event.soptPropagation 在 React 中不起作用?

reactjs - 如何将 javascript 生成的 DOM 元素传递给渲染函数

javascript - 更新 DOM 与在 Angular 中重新渲染 View

c# - 呈现 HTML 的最佳控件