当 `
HTML
✅ 正确做法是确保 在所有
@@##@@
⚠️ 注意:onerror 仅对 自身 src 失败触发(不监听 ),且需设 this.onerror=null 防止循环调用。此法简洁,适合静态页面。
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('pict
ure').forEach(picture => {
const img = picture.querySelector('img');
if (!img) return;
// 监听 img 加载失败
img.addEventListener('error', () => {
// 可选:先尝试 fallback 图片
const fallbackSrc = '/uploads/20251227/1766824597694f9a9596b7a.jpg';
img.src = fallbackSrc;
// 进一步可记录错误或上报监控
console.warn(`[Picture Fallback] IMG load failed, using default: ${fallbackSrc}`);
});
// (进阶)也可监听 source 加载失败(需 polyfill 或现代 API)
// 注意:原生 `error` 事件不冒泡自 source,需通过 Promise.all + fetch 模拟检测
});
});综上,