Javascript监控页面指定DOM所有图片是否加载完成的代码

实现监控检测网页所有图片是否加载完成的思路:把网页所有img定义成一个数组变量,再实例化一个Image对象,然后遍历前面的数组变量,把每个src逐个附值给Image对象src,再逐个通过onload事件判断图片是否加载完成。

扩展:ready是指DOM结构加载完成后执行,不包括网页上的图片等媒体元素;onload则是DOM结构和页面资源(图片、视频、flash等)全部加载完成后执行。所以判断图片是否加载完成要用onload事件。(注意:jquery对象以及使用querySelectorAll、getElementsByTagName、getElementsByClassName获取的对象使用onload需要加下标,如[0])。

实现代码

HTML代码:

<div id="tddx">
	<img src="https://www.tddx.net/1.jpg" alt=""/>
	<img src="https://www.tddx.net/2.jpg" alt=""/>
	<img src="https://www.tddx.net/3.jpg" alt=""/>
	<img src="https://www.tddx.net/4.jpg" alt=""/>
	<img src="https://www.tddx.net/5.jpg" alt=""/>
	<img src="https://www.tddx.net/6.jpg" alt=""/>
</div>

Javascript代码:

var tddx = document.getElementById('tddx');
var img = [],
	num = 0,
	tddxImg = tddx.querySelectorAll('img');
var imgLength = tddxImg.length;
for(var i=0;i<imgLength;i++){
	img[i] = new Image();
	img[i].src = tddxImg[i].src;
	img[i].onload = function(){
		num++;
		if(num == imgLength){
			//setTimeout(function(){
				// your code
			//},200);   
			// 图片加载完成后要执行的代码
		}
	}
}

PS:图片加载完成后要执行的代码,可以先使用setTimeout函数延迟一会后再执行。