JS获取图片高度宽度的方法分享


Posted in Javascript onApril 17, 2015

一般获取图片高度宽度的写法:

var img = new Image();

img.src = imgsrc;

var imgWH = CalcImgTiple(img.width, img.height);

但chrome中测试 无法获取到。img.width, img.height都为0

原因:当图片不是本地图片,而是网络图片
onload 在成功地装载了图像时调用的事件处理程序。

在做web开发,其中有一个需求:利用Javascript获取要加载的图片的尺寸,所以很自然的,想到了img的onload方法,在firefox下开发完成后,到IE下调试,发现img的onload事件很多情况下都不被调用。

最初的代码如下:

var img = new Image;

img.src = "test.gif";

img.onload = function(){

alert ( img.width );

};

这段代码看着没什么问题,但是为什么onload没有被IE调用呢?因为IE会缓存图片,第2次加载的图片,不是从服务器上传过来的,而是从缓冲区里加载的。是不是从缓冲区里加载的图片就不触发onload事件呢?我于是我测试了以下代码,成功了~

var img = new Image;

img.onload = function(){

alert ( img.width );     };

img.src = "test.gif";

把onload写到前面去,先告诉浏览器如何处理这张图片,再指定这张图片的源,这样就正常了。所以,不是IE没有触发onload事件,而是因为加载缓冲区的速度太快,以至于没有运行到img.onload的时候,onload事件已经触发了。这让想到了Ajax,在写xmlhttp的时候,都是先指定onstatechange的回调函数,然后再send数据的,道理是一样的

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
常用js脚本
Dec 03 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 Javascript
Javascript中数组方法汇总(推荐)
Apr 01 Javascript
jquery及js实现动态加载js文件的方法
Jan 21 Javascript
微信小程序 toast 详解及实例代码
Nov 09 Javascript
javascript 定时器工作原理分析
Dec 03 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
javascript 原型与原型链的理解及实例分析
Nov 23 Javascript
js实现百度登录窗口拖拽效果
Mar 19 Javascript
小程序实现tab标签页
Nov 16 Javascript
JS创建自定义对象的六种方法总结
Dec 15 Javascript
JS替换字符串中空格方法
Apr 17 #Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
Apr 17 #Javascript
jQuery实现自定义事件的方法
Apr 17 #Javascript
jQuery插件slides实现无缝轮播图特效
Apr 17 #Javascript
js实现touch移动触屏滑动事件
Apr 17 #Javascript
JavaScript实现控制打开文件另存为对话框的方法
Apr 17 #Javascript
JavaScript对象反射用法实例
Apr 17 #Javascript
You might like
拼音码表的生成
2006/10/09 PHP
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
PHP详细彻底学习Smarty
2008/03/27 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
Prototype Selector对象学习
2009/07/23 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
浅析Jquery操作select
2016/12/13 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
对Python中画图时候的线类型详解
2019/07/07 Python
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
复核员上岗演讲稿
2014/01/05 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
四则混合运算教学反思
2016/02/23 职场文书