使用javascript判断图片是否加载完成的三种实现方式

     2022-04-08     799

关键词:

有时需要获取图片的尺寸,这需要在图片加载完成以后才可以。有三种方式实现,下面一一介绍。

一、load事件 

 
<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>img - load event</title> 
</head> 
<body> 
<img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg"> 
<p id="p1">loading...</p> 
<script type="text/javascript"> 
	img1.onload = function() { 
		p1.innerHTML = ‘loaded‘; 
	} 
</script> 
</body> 
</html> 

测试,所有浏览器都显示出了“loaded”,说明所有浏览器都支持img的load事件。

二、readystatechange事件

 

 
<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>img - readystatechange event</title> 
</head> 
<body> 
<img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg"> 
<p id="p1">loading...</p> 
<script type="text/javascript"> 
img1.onreadystatechange = function() { 
	if(img1.readyState=="complete"||img1.readyState=="loaded"){ 
		p1.innerHTML = ‘readystatechange:loaded‘ 
	} 
} 
</script> 
</body> 
</html> 

readyState为complete和loaded则表明图片已经加载完毕。测试IE6-IE10支持该事件,其它浏览器不支持。

三、img的complete属性 

 
<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>img - complete attribute</title> 
</head> 
<body> 
<img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg"> 
<p id="p1">loading...</p> 
<script type="text/javascript"> 
	function imgLoad(img, callback) { 
		var timer = setInterval(function() { 
			if (img.complete) { 
				callback(img) 
				clearInterval(timer) 
			} 
		}, 50) 
	} 
	imgLoad(img1, function() { 
		p1.innerHTML(‘加载完毕‘) 
	}) 
</script> 
</body> 
</html> 

[javascript]js中判断对象是否为空的三种实现方法

在写js脚本的时候经常遇到对象为空或者不是对象的情况,出现这种情况我们可以用if去判断它,然后去执行相应的处理方法,具体判断他们的方法有以下几种:1、if(typeOf(x)=="undefined")2、if(typeOf(x)!="object")3、if(!x)其中第三种是最... 查看详情

js异步加载的三种方式

一、同步加载  我们平时使用的最多的一种方式。<scriptsrc="http://yourdomain.com/script.js"></script><scriptsrc="http://yourdomain.com/script.js"></script>  同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析... 查看详情

js判断页面是否加载完成

1.javascript、jquery:方法一:window.onload=function(){} 方法二://判断网页是否加载完成document.onreadystatechange=function(){    if(document.readyState=="complete"){      查看详情

document.readystate等属性,判断页面是否加载完

...面加载已完成?document.readyState判断页面是否加载完成?javascript提供了document.readyState=="complete"方法来解决当前页面加载判断的问题。 <scripttype="text/javascript">   functioninitVie 查看详情

picturebox加载图片的三种方法与网站验证码的抓取

...种:(此方法比较笨)在页面上隐藏几个需要改变页面上图片的picturebox,比如下面的picFrom在需要改变图片的方法处先定义:System.Resources.ResourceManagerresources=newSystem.Resources.ResourceManager(typeof(Form1));然后就可以改变了(比如picTo的... 查看详情

js判断一个数组中是否有重复值的三种方法

方法一: vars=ary.join(",")+",";for(vari=0;i<ary.length;i++){if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1){alert("数组中有重复元素:"+ary[i]);break;}}方法二: varary=newArray("111","22","33","111 查看详情

ios给uiimageview添加圆角的三种方法

...添加圆角,如:给用户头像设置圆角等。在这里记录一下使用过的三种方法。方法一:通过设置UIView的layer来设置圆角此方法的有个缺点是:会强制CoreAnimation提前渲染屏幕的离屏绘制,而离屏绘制就会给性能带来负面影响,会有... 查看详情

jquery页面加载初始化常用的三种方法

第一种:复制代码代码如下:<scripttype="text/javascript"src="./js/jquery-1.7.min.js"></script> 复制代码代码如下:<scripttype="text/javascript">//initmethodone$(document).ready(function(){trace("初始化方法进 查看详情

java判断一个字符串是否是数字的三种方法(代码片段)

参考https://blog.csdn.net/ld_flex/article/details/76991611用JAVA自带的函数publicstaticbooleanisNumeric(Stringstr)for(inti=str.length();--i>=0;)if(!Character.isDigit(str.charAt(i)))returnfalse;returntr 查看详情

selenium常用的三种等待方式(代码片段)

...作成功之后才能进行下一步操作等,这时候,我们就需要使用等待,来判断上一步操作是否完成,什么时候可以进行下一步操作。如果说上一步操作如果花费的时间较长,还没有完成,就去进行下一步操作,这时就会产生无法定... 查看详情

jquery页面加载初始化常用的三种方法

...明了: 第一种: 复制代码代码如下:<scripttype="text/javascript"src="./js/jquery-1.7.min.js"></script>   查看详情

javascript定义类(class)的三种方法

将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言。如果你忘了填写用户名,它就跳出一个警告。如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途。程序员用它完成越来越庞大的项目。Javascrip... 查看详情

ef的三种数据加载方式

...rtual贪婪加载:不设置导航属性为virtual,并且对导航属性使用Include显示加载:不设置导航属性为virtual,并且对导航属性使用Reference(单个对象).Load()或Collection(对象集).Load()publicclassProgramm{publicstaticvoidMain( 查看详情

判断js是否加载完成

...)异步加载脚本,完成后执行回调函数,要求支持IE)我们使用document的 查看详情

javascript实现接口的三种经典方式

  1/*2接口:提供一种说明一个对象应该有哪些方法的手段3js中有三种方式实现接口:41注释描述接口52属性检测接口63鸭式辨型接口7*/89/*101注释描述接口:不推荐11优点:利用注解,给出参考12缺点:纯文档约束,是一个假接... 查看详情

ef的三种数据加载方式(代码片段)

...Loading都是延迟加载。(一)延迟加载(默认):LazyLoading使用的是动态代理,默认情况下,如果POCO类满足以下两个条件,EF就使用LazyLoading:POCO类是Public且不为Sealed。导航属性标记为Virtual。 查看详情

html中使用javascript的三种方式及优缺点

 1.内部js:在直接在页面的<script></script>标签内写js代码   优点:相对于使用行内js,内部js代码较为集中,与页面结构的实现代码耦合度较低,比较便于维护缺点:js代码仅限于当前页面的使用,代码无法被... 查看详情

javascript中事件绑定的三种方式

JavaScript使得网页与用户友好交互,在使用js进行时间绑定的时候有三种绑定方式。第一种:初学者以及普通写法1<divid="dom0">2<inputtype="button"value="Click0"onclick="dom0();"/>3</div>4<script>5functiondom0(){6alert(‘Dom0Leval‘) 查看详情