JavaScript 图像加载事件处理与 onload 机制解析

作者:微光

时间:2026-10-30

浏览:546

本文深入解析 JavaScript 中图像加载事件的触发机制,探讨如何利用 onload 事件及 HTML 属性处理图片加载状态。通过示例演示如何结合 complete 属性与 naturalWidth 判断图像是否成功加载,并介绍在缓存场景下的行为差异,同时提供基于 HTML 内联属性的错误处理方案,帮助开发者实现更稳健的前端资源加载逻辑。

文章目录

本文将探讨如何在 JavaScript 环境中处理 .onload 事件,并演示如何在图像上传完成后,利用 JavaScript 生成相应的提示框。

此外,我们将学习如何通过构建提示框,使用 JavaScript 来验证图像是否已经成功加载。

JavaScript 中的 .onload 事件

.onload 事件仅在对象加载完成时触发。该事件主要应用于元素主体中,当网页加载完毕(包含图像、脚本、CSS 文件等所有资源)后,相关的脚本便会执行。

浏览器允许我们监控外部资源(如图像、脚本、iframe 等)的加载状态。当上传图像时,若该图像已保存在浏览器缓存中,则会触发 onload 事件。

那么,如何创建一个无论图像是否被缓存,都能在加载时显示提示框的机制?

我们需要创建一个提示框,当图像上的 onload 事件被触发时,显示一条消息表明图像已成功加载。我们可以通过 JavaScript 配合 HTML 来实现这一功能。

JavaScript 中的 image.onload 事件

使用 JavaScript,我们可以检查图像是否已完全加载。为此,我们将使用 HTMLImageElement 接口的 complete 属性。

当图像完全上传时,此属性返回 true,否则返回 false。在 JavaScript 中,我们还可以使用 naturalWidth 和 naturalHeight 属性,任选其一即可。

在示例代码中,我们使用了 .naturalWidth,如果图像加载成功则返回 true,否则返回 0。

HTML 代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Onload event using Javascript</title>
    <link rel="stylesheet" href="styles.css" rel="external nofollow"  rel="external nofollow"  />
  </head>
  <body>
      <h1 class="title">Onload event using Javascript</h1>
      <script src="script.js"></script>
      <img src="https://secure.gravatar.com/avatar?d=wavatar">
  </body>
</html>

JavaScript 代码:

window.addEventListener("load", event => {
    var image = document.querySelector('img');
    var isLoadedSuccessfully = image.complete && image.naturalWidth !== 0;
    alert(isLoadedSuccessfully);
});

运行这段代码后,它将返回 true,这意味着图像加载成功。

HTML 中的 image.onload 事件

如果不想使用 JavaScript,我们可以利用 HTML 属性来检查图像是否已加载。在 HTML 中,可以使用 onload 和 onerror 属性。

在 HTML 中,onload 属性在图像加载成功时触发,而 onerror 属性在加载图像发生错误时触发。

我们在以下代码中使用了 onload 和 onerror 属性。借助这些属性,我们可以创建一个提示框,在图像加载时显示消息,表明图像已成功加载。

如果在加载图像时发生错误,它将显示一条消息,指出图像未加载。

HTML 代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Onload event using HTML</title>
    <link rel="stylesheet" href="styles.css" rel="external nofollow"  rel="external nofollow"  />
  </head>
  <body>
      <h1 class="title">Onload event using HTML </h1>
      <p id="currentTime"></p>
      <script src="script.js"></script>
      <img src="https://secure.gravatar.com/avatar?d=wavatar"
      onload="javascript: alert('The image is loaded successfully')"
      onerror="javascript: alert('Image is not loaded')" />
  </body>
</html>

运行代码后,它会显示图像加载成功的警告消息。

到此这篇关于 javascript 中的图像加载事件的文章就介绍到这了,更多相关 js 图像加载事件内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章