如何确保定义img.onload函数的脚本在img之前加载?

时间:2016-06-22 21:59:32

标签: javascript html image onload

假设我的HTML按所示顺序包含这两个标记:

<script src="script.js"></script>
<img src="http://otherdomain.com/image.png" onload="imgLoad(this)"/>

script.js定义了函数imgLoad。我理解,当浏览器解析HTML时,它将首先看到脚本,然后首先请求它,但是如果需要很长时间并且图像在脚本之前完成加载,我将收到imgLoad未定义的错误

或者这实际上不可能吗?规范是否要求onload事件和javascript的运行按照声明元素的顺序同步发生?如果是这样,现代浏览器是否正确实现了这一点?

1 个答案:

答案 0 :(得分:1)

这是关于这个主题的great article

TL; DR

由于脚本加载是同步的,因此无法在脚本之前加载图像。这是为浏览器创建加载功能的最简单方法,因此是所有现代浏览器的默认功能。