作为WEB设计者,为了在网页展示上加强用户体验,经常会利用图象载入显示状态方法,这自然需要Image对象的onload事件。 在firefox浏览器下完成开发后,可是在IE浏览器中进行调试总不能被调用。不管是最新版的IE8还是旧版本的IE7IE6都无效,最初的代码简化后如下:

var img = new Image();
img.src = "test.gif";
img.onload = function(){
alert(this.src);
//other
};

简单看过以后貌似这段代码没有什么问题,可是IE下就不是能正常的运行。不管怎么检测,IE根本不会理会,不过还是找到了解决的方法,原理如下:
图片下载时,浏览器会把图片缓存起来,再次加载此图片时就会从缓冲区里加载。
那么如果图片已经在缓存区了,是不是从缓冲区里加载的图片就不触发onload事件呢?
测试……

var img = new Image();
img.onload = function(){
alert(this.src);
//other
};
img.src = "test.gif";

测试成功!

结论:应该把onload写到src前面,先告诉浏览器图片加载完要怎么处理,再让它去加载图片。 所以,不是IE浏览器不会触发onload事件,而是因为加载缓冲区的速度太快,在没有告诉它加载完要怎么办时,它已经加载完了。反过来说,firefox明显更智能一些,加入onload事件后,firefox浏览器会检测缓冲区是否已经有此图片,有的话直接就触发此事件!

文章来自:http://www.iefans.net/ie-image-duixiang-onload/

最新文章

  1. 常用数据库高可用和分区解决方案(1) — MySQL篇
  2. JavaScript 、jQuery动态创建元素的关键字~
  3. object-c 协议和委托
  4. centos6.5下的mysql5.6.30安装
  5. php练习——打印半金字塔、金字塔、空心金字塔、菱形、空心菱形
  6. sql编程 && 存储过程
  7. position relative
  8. NancyFx 2.0的开源框架的使用-Basic
  9. Java内存区域与对象创建过程
  10. flask完成文件上传功能
  11. 错误:Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file
  12. Linux测试硬盘读性能的常用工具-hdparm和dd俩搭档
  13. 树莓派 连接 JY901(MPU9250) python 代码
  14. nova98 假区域链 骗人项目(vexx.pro的前身)
  15. JavaScript是如何工作的:Service Worker的生命周期及使用场景
  16. 欢迎加入.NET Core 技术QQ群一起讨论交流学习
  17. 课程四(Convolutional Neural Networks),第三 周(Object detection) —— 2.Programming assignments:Car detection with YOLOv2
  18. Python中列表
  19. php RSA加密传输代码示例(轉)
  20. Bootstrap的起步

热门文章

  1. nodejs 命令行、自定义
  2. webstorm+react+webpack-demo
  3. 【requireJS源码学习02】data-main加载的实现
  4. Android 图片压缩、照片选择、裁剪,上传、一整套图片解决方案
  5. 【原】iOS触摸事件深度解析
  6. 遇到别人留下的storyboard的,你需要一个引导图,但是不知道怎么跳转.
  7. IOS 多线程分类以及多线程的相关操作
  8. DP优化与换零钱问题
  9. #VSTS日志# TFS 2015 Update 2 RC2新功能
  10. 原生JS 表单提交验证器