在将HTML字符串传递给dangerouslySetInnerHTML之前,先处理字符串,修改图片或者视频的width和height属性。
const processRichText = (htmlString) => {
const parser = new DOMParser();
const doc = parser.parseFromString(htmlString, "text/html");
const images = doc.getElementsByTagName('img');
const videos= doc.getElementsByTagName('video');
for (let img of images) {
img.style.maxWidth = '100%';
img.style.height = 'auto';
// 可以添加其他属性,如object-fit来更好地控制图片的展示方式
img.style.objectFit = 'contain';
}
for (let videoo of videos) {
videoo.style.maxWidth = '100%';
videoo.style.height = 'auto';
}
return doc.body.innerHTML;
};
const richTextWithProcessedImages = processRichText(yourRichTextString);
// 然后在组件中使用
<div dangerouslySetInnerHTML={{ __html: richTextWithProcessedImages }} />
2832

被折叠的 条评论
为什么被折叠?



