diff --git a/src/ai/list/index.jsx b/src/ai/list/index.jsx index 56234716..a61c8b20 100644 --- a/src/ai/list/index.jsx +++ b/src/ai/list/index.jsx @@ -66,7 +66,7 @@ function List(props) { const { projectProperties, id } = row; return { id: id, - name: projectProperties.name, + name: projectProperties.fromOwner === "AI-RESOURCE" ? projectProperties.name.split("/").pop() : projectProperties.name, image: projectProperties.authorImageUrl, isNew: false, url: projectProperties.fullName, diff --git a/src/components/render-html.jsx b/src/components/render-html.jsx index 8ef28093..3d9baacc 100644 --- a/src/components/render-html.jsx +++ b/src/components/render-html.jsx @@ -135,6 +135,14 @@ export default ({ } } + // 图片加载失败处理 - 使用事件委托统一监听 + const handleImageError = (e) => { + const img = e.target; + // 避免循环调用:如果当前已经是裂图,不再替换 + if (img.src === imgError) return; + img.src = imgError; + }; + useEffect(() => { if (el.current && html) { if (html.match(preRegex)) { @@ -143,8 +151,11 @@ export default ({ } if (el.current) { el.current.addEventListener('click', onAncherHandler) + // 使用事件委托,在父容器上统一监听图片错误事件 + el.current.addEventListener('error', handleImageError, true); return () => { - el.current.removeEventListener('click', onAncherHandler) + el.current.removeEventListener('click', onAncherHandler); + el.current.removeEventListener('error', handleImageError, true); resetMathExpressions() cleanToc() }