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 相关文章推荐
javascript数字数组去重复项的实现代码
Dec 30 Javascript
javascript跨域刷新实现代码
Jan 01 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 Javascript
jQuery替换textarea中换行的方法
Jun 10 Javascript
jQuery+css实现炫目的动态块漂移效果
Jan 28 Javascript
完美解决input[type=number]无法显示非数字字符的问题
Feb 28 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
Oct 19 Javascript
JS实现数组的增删改查操作示例
Aug 29 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
fastadmin中调用js的方法
May 14 Javascript
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
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
php中使用redis队列操作实例代码
2013/02/07 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
smarty内置函数section的用法
2015/01/22 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
用js编写留言板
2020/03/17 Javascript
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
python基于SMTP协议发送邮件
2019/05/31 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
配件采购员岗位职责
2013/12/03 职场文书
本科毕业生求职信
2014/06/15 职场文书
销售员试用期自我评价
2014/09/15 职场文书
投诉信回复范文
2015/07/03 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
AJAX实现省市县三级联动效果
2021/10/16 Javascript
Python实现归一化算法详情
2022/03/18 Python