img onload事件绑定各浏览器均可执行


Posted in Javascript onDecember 19, 2012

在需要对img进行onload事件绑定的时候,一般大家都会想到用常规的方法进行事件绑定,如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>img onload事件绑定(错误用法)</title> 
<script type='text/javascript'> 
window.onload = function(){ 
var img = document.getElementById('imgId'); 
img.onload = function(){ 
alert(1); 
}; 
}; 
</script> 
</head> 
<body> 
<img src='images/06.jpg' id='imgId'/> 
</body> 
</html>

此时大家会发现alert(1)并没有执行,这是什么原因呢?特别是在ie和ff浏览器下。
而且在用到jquery插件库的时候会发现,alert除了在ie和Opera浏览器不弹出来外,其他浏览器均弹出来,这是为什么呢?!
主要是window.onload事件是在页面dom元素加载完后执行,也就包括了img图片中src加载完成。那么img.onload 就不会执行了,
因为其是监听img的src是否加载完成。
那么,如何对img图片进行onload事件绑定呢?具体代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>img onload事件绑定(正确用法)</title> 
<script type='text/javascript'> 
window.onload = function(){ 
var img = document.getElementById('imgId'); 
var src = img.getAttribute('src'); 
img.setAttribute('src',''); 
img.onload = function(){ 
alert(1); 
}; 
img.setAttribute('src',src); 
}; 
</script> 
</head> 
<body> 
<img src='images/06.jpg' id='imgId'/> 
</body> 
</html>

这种方法,在各浏览器下均执行alert(1)。
也就是在页面dom元素加载完成后,获得img的dom对象,获得其src属性,再将其src设置为‘'空,然后监听img的onload事件,最后再设置img的src属性即可。
Javascript 相关文章推荐
javascript URL锚点取值方法
Feb 25 Javascript
基于jquery自己写tab滑动门(通用版)
Oct 30 Javascript
Node.js和MongoDB实现简单日志分析系统
Apr 25 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
浅谈javascript的分号的使用
May 12 Javascript
jquery实现简易的移动端验证表单
Nov 08 Javascript
JavaScript Split()方法
Dec 18 Javascript
理解jquery事件冒泡
Jan 03 Javascript
jQuery插件实现适用于移动端的地址选择器
Feb 18 Javascript
AngularJs表单校验功能实例代码
Feb 09 Javascript
JS排序之选择排序详解
Apr 08 Javascript
js实现简单进度条效果
Mar 25 Javascript
JavaScript实现快速排序(自已编写)
Dec 19 #Javascript
js 使用form表单select类实现级联菜单效果
Dec 19 #Javascript
JS限制上传图片大小不使用控件在本地实现
Dec 19 #Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
Dec 19 #Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
Dec 19 #Javascript
ajax java 实现自动完成功能
Dec 19 #Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 #Javascript
You might like
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
一篇不错的PHP基础学习笔记
2007/03/18 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
node.js中的console用法总结
2014/12/15 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
Python版名片管理系统
2018/11/30 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
VC++笔试题
2014/10/13 面试题
告诉你怎样写创业计划书
2014/01/27 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
敬老院活动总结
2014/04/28 职场文书
2014年创卫工作总结
2014/11/24 职场文书
二婚主持词
2015/06/30 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
java实现对Hadoop的操作
2021/07/01 Java/Android
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang