我正在从我的后端(由CKEditor生成)获取HTML,然后我使用DangerouslySetInnerHTML来渲染这样的HTML:
const parsed = DOMPurify.sanitize(album.description)
<div dangerouslySetInnerHTML ={{ __html: parsed }} className={styles.albumDescription} </div>
它工作得很好,我可以渲染我的HTML。然而,我有嵌入媒体的麻烦。CK编辑器返回<oembed />
标记中的媒体链接。
我想做的是每次有<oembed />
时,将它们插入<ReactPLayer />
组件。
我知道我可能会使用香草js DOM操作,并使用类似getElementsByTagName的东西,但我认为这不是很好的做法,在反应。
使用DOM操作的挑战将是逐字替换<oembed .... />
将具有的所有属性,尽管这并非不可能。
如果传入的html字符串不是很大(以几mb为单位运行),一个简单的字符串正则表达式操作应该可以做到:
选项1:如果你确定它总是<oembed…>,则下列工作。
const desc = album.description;
oembed_2_player = desc.replaceAll(/<oembed ([^/]*)/>/gi,"<ReactPLayer $1 />");
const parsed = DOMPurify.sanitize(oembed_2_player)
<div dangerouslySetInnerHTML ={{ __html: parsed }} className={styles.albumDescription} </div>
选项2:如果你希望相关内容
最新更新
- 每个脚本发送GDoc / GSheet
- apoc.col .zip()的一些奇怪的结果
- unboundfield对象不可调用
- 在jQuery刀片文件中使用php larval helper函数
- 排序颜色,似乎不明白出了什么问题
- 在supabase的颤振sdk中,如何使用.contains("group_members",[my_uid])之类的东西过滤流?
- 为什么我无法在 AWS API Gateway 中访问我的 REST API?
- Roku RAF在连续播放视频时抛出错误
- JSON的树层次图从SQL Server
- GWT应用程序中的POST请求
- Azure管道未运行
- 在Mac上的VS Code中包含Boost(未找到文件)
- 如何使用字典分离重复值和唯一值
- 每个keyIsDown对应一个函数
- React在获取数据后不渲染数组
- c++概念和转换问题
- 用于持有移动注册令牌的最佳数据结构
- 我怎么能得到Webpack解析JSX在我的index.js?
- java.lang.IllegalArgumentException: API声明必须是接口
- 将ENI中继附加到cloudformation中的自定义安全组
- 我可以使用findFiles没有脚本标签的詹金斯声明式管道?
- 如何使用JPQL编写带有where子句的左连接
- 清理sphinx-doc原型类型
- 如何在AWS API网关前设置AWS应用程序负载均衡器
- 投影矩阵与全息透镜1上的PhotoCapture不可用
- 不能为所有连接的客户端更改标签的内容
- p2p chat on python
- nodejs中buffer的用例
- 从Jenkins过渡到Github Actions
- 是否可以在不访问其聊天的情况下下载团队会议记录?
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium