跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

onload attribute在img/script中效果_资源加载完成监听【指南】

onload 不触发主因是资源未成功加载或事件监听顺序错误;应先绑定 addEventListener 再设置 src,并对 img 主动调用 decode() 确保解码完成。 img 的 onload 为什么有时不触发? 因为
onload
只在资源**成功加载完成**时触发,且前提是 DOM 中该
元素已存在、
src
已设置、浏览器尚未缓存命中并同步完成解码(极少数情况)。 如果
src
是空字符串、
data:
URI 解析失败、或图片格式损坏,
onload
不会触发,
onerror
会触发 如果元素插入 DOM 前就设置了
onload
,但
src
是之后才赋值的,没问题;但如果
src
赋值前图片已被缓存且浏览器提前加载完毕(如预加载),
onload
可能已错过 —— 此时需检查
complete
属性 动态创建
时,务必先设
onload
再设
src
,顺序反了在某些浏览器(尤其是旧版 Safari)中可能丢失事件 script 的 onload 和 defer/async 的关系