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

标签 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 的运行按照元素声明的顺序同步发生?如果是这样,现代浏览器是否正确实现了这一点?

最佳答案

这是一个great article就这个主题而言。

TL;DR

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

关于javascript - 如何确保定义 img.onload 函数的脚本在 img 之前加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978986/

相关文章:

javascript - 当 SignalR 函数完成时,如何将 SignalR 函数的值返回到父函数?

javascript - 我是否可以使用此解决方案避免哈希冲突?

JavaScript 消除了我网页的静态背景

javascript - 将有选项显示图像而不是 Bootstrap 多选中的选定文本

php - 在 PHP 脚本中选择 gif 的颜色数量

vb.net - VB.NET 中的文件类型检查?

Android - 在 RecyclerView 的图像中点击动画作为 Whatsapp

javascript - 嵌套的、依赖的回调函数

javascript - AngularJS + PhoneGap

html - 使用 AlternateView 生成 HTML 电子邮件的正确语法