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中实现暂停的几篇文章
Mar 04 Javascript
理解JavaScript中的对象 推荐
Jan 09 Javascript
jquery星级插件、支持页面中多次使用
Mar 25 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
jquery自定义函数的多种方法
Jan 09 Javascript
Laravel中常见的错误与解决方法小结
Aug 30 Javascript
BootStrap 导航条实例代码
May 18 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
Sep 19 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
Aug 22 Javascript
小程序实现锚点滑动效果
Sep 23 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
Sep 10 Javascript
如何在面试中手写出javascript节流和防抖函数
Oct 22 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
Parse正式发布开源PHP SDK
2014/08/11 PHP
php简单实现快速排序的方法
2015/04/04 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
详解Document.Cookie
2015/12/25 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
Python+pandas计算数据相关系数的实例
2018/07/03 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
OpenCV 模板匹配
2019/07/10 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
小学生新学期寄语
2014/01/19 职场文书
施工员岗位职责
2014/03/16 职场文书
超市中秋节促销方案
2014/03/21 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
世博会口号
2014/06/20 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
小学思想品德教学反思
2016/02/24 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS