You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

页面加载时检测图片加载错误并替换为默认图的实现问题排查

图片加载错误自动替换默认图修复方案

原代码失效的核心原因

  • 变量名拼写错误:你定义的图片集合变量为images,但判断条件中错误写为image[i],缺少末尾的s,直接触发引用异常导致代码整体失效
  • 判断逻辑错误:complete属性仅代表图片完成了加载流程,无论加载成功还是加载失败都会返回true,无法筛选出加载出错的图片
  • 逻辑时机缺陷:window.onload会等待页面所有静态资源加载完成后才触发,替换操作的滞后性会导致用户长时间看到裂图占位

修复后的可用代码

版本1:基于原有遍历逻辑修改

window.onload = function() {
    var images = document.images;
    for (var i = 0; i < images.length; i++) {
        // 加载失败的图片自然宽高会为0
        if (images[i].naturalWidth === 0) {
            images[i].src = 'assets/default-avatar.jpg';
        }
    }
}

版本2:更优的全局监听方案(实时替换,无需等待全页加载)

// 开启捕获模式监听全局error事件(img的error事件不冒泡,必须在捕获阶段处理)
window.addEventListener('error', function(e) {
    if (e.target.tagName.toLowerCase() === 'img') {
        e.target.src = 'assets/default-avatar.jpg';
    }
}, true);

内容的提问来源于stack exchange,提问作者genghiskhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:54:03