JavaScript判断图片加载完成的三种方法

作者:青柠

时间:2026-10-29

浏览:653

本文汇总了JavaScript中判断图片是否加载完成的三种常用方法。包括W3C推荐的onload事件、利用img对象的complete属性轮询检测,以及IE浏览器特有的onreadystatechange事件。文章提供了具体代码示例,并说明了各方法的浏览器兼容性情况,帮助开发者根据实际需求选择合适方案。

文章目录

JavaScript判断图片加载完成的三种方法

网络上关于判断图片是否加载完成的教程众多,但部分方案在不同浏览器中表现不一。本文将介绍几种JavaScript实现图片加载状态检测的方法,并附上具体代码示例供参考。

使用onload事件

一、使用onload事件

通过监听图片的onload事件,可以准确判断图片是否加载完成。这是W3C推荐的做法,且兼容所有主流浏览器。具体代码示例如下:


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg" alt="">
<script>
// 方法一:图片已经下载完
document.getElementById('img1').onload = function(e){
e.stopPropagation();
alert(1);
}
</script>
</body>
</html> 

检查img对象的complete属性

二、检查img对象的complete属性

当图片加载完成后,img对象的complete属性值会变为true。可以通过轮询该属性来判断加载状态,代码示例如下:


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg" alt="">
<script>
// 方法二:img的complate属性
var timer = setInterval(function(){
if (document.getElementById('img1').complete){
clearInterval(timer);
alert(1);
console.log(document.getElementById('img1').complete)
}
}, 10);
</script>
</body>
</html> 

经测试,该方法同样兼容所有浏览器。

使用onreadystatechange事件

三、使用onreadystatechange事件

在IE浏览器中,img对象与XMLHttpRequest对象类似,均支持onreadystatechange事件。通过监听该事件可以判断图片加载状态,代码示例如下:


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg" alt="">
<script>
document.getElementById('img1').onreadystatechange = function() {
if(document.getElementById('img1').readyState=="complete"||document.getElementById('img1').readyState=="loaded"){
alert(1);
}
}
</script>
</body>
</html> 

需要注意的是,该方法仅在IE浏览器中有效。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章