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 09 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
Jun 13 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
Dec 21 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
jQuery事件委托代码实践详解
Jun 21 jQuery
vue+springboot图片上传和显示的示例代码
Feb 14 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 Javascript
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
Jun 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
php制作的简单验证码识别代码
2016/01/26 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
python递归全排列实现方法
2018/08/18 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
《落花生》教学反思
2014/02/25 职场文书
党员实事承诺书
2014/03/26 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
不同意离婚上诉状
2015/05/23 职场文书
安全生产协议书
2016/03/22 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
css height属性中的calc方法详解
2021/06/03 HTML / CSS