HTMLImageElement的load事件是在哪个规范文档中定义的?
img元素load事件触发规则与属性说明
触发时机
- 当
img元素的src/srcset属性完成赋值、且关联的图像资源完整下载并成功解码为可渲染格式时,才会触发load事件 - 如果资源请求失败(如HTTP错误、跨域限制、图像格式损坏无法解码),会触发
error事件,不会触发load - 即使图像已经被浏览器本地缓存,
load事件也不会同步触发,会进入任务队列等待当前同步执行栈清空后再执行,不会打乱代码执行顺序
事件核心属性
bubbles:值为false,该事件不支持冒泡,无法通过父元素的冒泡监听捕获img的load事件,必须直接绑定在img元素本身,或者在事件捕获阶段监听cancelable:值为false,无法通过preventDefault方法阻止load事件触发
补充说明
你没在img元素的规范主条目中搜到“fire an event”的相关描述是正常的,img的load/error事件触发逻辑被统一定义在HTML规范的「图像资源更新流程」章节,没有单独写在img元素的主说明里。
和input[type=image]的差异是:input[type=image]的load事件会被排入用户交互任务源,而img的load事件属于网络任务源,两者优先级略有区别,常规开发场景下基本感知不到差异。
内容的提问来源于stack exchange,提问作者natevw
相关产品推荐
相关产品推荐

