js如何判断图片是否已加载
思否 问答 👍 2 含 AI 优化版
问题
js如何判断图片是否已加载
由大模型辅助整理,保留原意,优化结构与可读性。
问题概述
如何用 JavaScript 判断一张图片是否已经加载完成(或加载失败)?
涉及技术
HTMLImageElement、onload/onerror 事件
期望结果
得到判断图片加载状态的可靠方法。
回答
原始回答
2021-06-13 图片有个 onload 事件,触发就表示图片已加载。还有个 onerror 事件,触发就代表图片加载失败,一般会在 onerror 事件里面补一个错误图片。
AI 优化 · 回答整理
解答思路
<img> 元素本身提供了 onload 和 onerror 两个事件:加载成功触发 onload,加载失败(地址错误、网络异常等)触发 onerror。
示例代码
const img = new Image();
img.onload = () => {
console.log('图片加载成功');
};
img.onerror = () => {
console.log('图片加载失败,展示兜底图');
img.src = '/fallback.png';
};
img.src = 'https://example.com/pic.jpg';
也可以用 complete 属性判断图片是否已经加载完成(同步检查,无需等待事件):
if (img.complete) {
console.log('图片已经加载完成(或已缓存)');
}
详细说明
onload:图片资源成功获取并解码完成后触发,是最常用的“加载完成”判断方式。onerror:图片请求失败(404、跨域、网络问题等)时触发,通常会在这里设置一张兜底图片。img.complete:布尔值,表示浏览器是否已经处理完这张图片(成功或失败都算),适合做同步的即时检查,比如图片已经命中浏览器缓存、onload事件不会再触发的场景。
小结
判断图片加载状态优先使用 onload/onerror 事件;如果需要同步判断是否已经加载完成,可以配合 img.complete 属性。
由大模型辅助整理,保留原意,补充结构与代码格式。
回答转载自 SegmentFault