JavaScript怎么判断图片是否加载完成以便获取其尺寸


Posted in Javascript onMay 08, 2014

有时需要获取图片的尺寸,这需要在图片加载完成以后才可以,求方法?

一、load事件

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>img - load event</title> 
</head> 
<body> 
<img id="img1" src="http://pic1.xxx.com/wall/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.xxx.com/wall/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.xxx.com/wall/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>

轮询不断监测img的complete属性,如果为true则表明图片已经加载完毕,停止轮询。该属性所有浏览器都支持。
Javascript 相关文章推荐
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
Jan 15 Javascript
jquery实现更改表格行顺序示例
Apr 30 Javascript
javascript将url中的参数加密解密代码
Nov 17 Javascript
学习JavaScript编程语言的8张思维导图分享
Mar 27 Javascript
PHP结合jQuery实现的评论顶、踩功能
Jul 22 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
jQuery Easyui datagrid连续发送两次请求问题
Dec 13 Javascript
十分钟带你快速了解React16新特性
Nov 10 Javascript
JS实现百度搜索框关键字推荐
Feb 17 Javascript
JavaScript中Object、map、weakmap的区别分析
Dec 15 Javascript
Ajax 的初步实现(使用vscode+node.js+express框架)
Jun 18 Javascript
js动态删除div元素基本思路及实现代码
May 08 #Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
May 08 #Javascript
jquery查找tr td 示例模拟
May 08 #Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
May 08 #Javascript
JavaScript二维数组实现的省市联动菜单
May 08 #Javascript
javascript中setTimeout的问题解决方法
May 08 #Javascript
在JavaScript中使用timer示例
May 08 #Javascript
You might like
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Python ftp上传文件
2016/02/13 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
python实现AdaBoost算法的示例
2020/10/03 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
优秀员工自荐书
2013/12/19 职场文书
《识字五》教学反思
2014/03/01 职场文书
绿化工程实施方案
2014/03/17 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
村委会贫困证明范文
2014/09/21 职场文书
男生贾里读书笔记
2015/06/30 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript