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 相关文章推荐
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 Javascript
js中方法重载如何实现?以及函数的参数问题
Aug 01 Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 Javascript
JavaScript获取两个数组交集的方法
Jun 09 Javascript
jquery+json实现动态商品内容展示的方法
Jan 14 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
浅谈js中的in-for循环
Jun 28 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
JavaScript订单操作小程序完整版
Jun 23 Javascript
微信小程序页面间值传递的两种方法
Nov 26 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
May 28 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
Sep 21 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
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Python+django实现简单的文件上传
2016/08/17 Python
Python函数返回不定数量的值方法
2019/01/22 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
python实现电子词典
2020/03/03 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
介绍一下游标
2012/01/10 面试题
.NET现在共支持多少种语言
2014/02/26 面试题
中药专业毕业自荐书范文
2014/02/08 职场文书
大课间体育活动方案
2014/03/12 职场文书
财务部总监岗位职责
2014/03/12 职场文书
颁奖晚会主持词
2014/03/25 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
家电创业计划书
2019/08/05 职场文书
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android