ie 处理 gif动画 的onload 事件的一个 bug
2008-05-04 15:46
447 查看
如果 <img>标签的 src为一个 gif 动画,那么他的 onload事件会重复触发。
firefox就没有这样的问题。
先看一个简单的事实:
<SCRIPT LANGUAGE="JavaScript">
var img=new Image();
img.src="attachment/1178365293_0.gif";
img.onload=function()
{
alert("如要关闭请按住ESC键不放,并点击关闭按钮");
}
</SCRIPT>
如果不出所料的话你的IE应该弹出一大堆alert提示窗口了。注意是“一大堆”!
原因很简单:IE对多帧GIF的onload事件重复执行,即每播放完一次动画,就重新执行一次onload事件。
(注:按下ESC键会停止gif动画的播放,故也会停止onload事件执行)
看下面的代码:
<img src="http://zi.csdn.net/intel_120x60.gif" onload='gorush(this)'>
<script type="text/javascript">
function gorush(obj){
alert("如果img的src为多帧gif动画,这个会重复弹出")
}
</script>
解决办法:
<img src="http://zi.csdn.net/intel_120x60.gif" onload='gorush(this)'>
<script type="text/javascript">
function gorush(obj){
alert("这样,就只会弹出一次")
obj.onload=null;
}
</script>
如果 src设置为 静态 gif 或者 jpg ,bmp等其他格式,也不会出现这个bug
firefox就没有这样的问题。
先看一个简单的事实:
<SCRIPT LANGUAGE="JavaScript">
var img=new Image();
img.src="attachment/1178365293_0.gif";
img.onload=function()
{
alert("如要关闭请按住ESC键不放,并点击关闭按钮");
}
</SCRIPT>
如果不出所料的话你的IE应该弹出一大堆alert提示窗口了。注意是“一大堆”!
原因很简单:IE对多帧GIF的onload事件重复执行,即每播放完一次动画,就重新执行一次onload事件。
(注:按下ESC键会停止gif动画的播放,故也会停止onload事件执行)
看下面的代码:
<img src="http://zi.csdn.net/intel_120x60.gif" onload='gorush(this)'>
<script type="text/javascript">
function gorush(obj){
alert("如果img的src为多帧gif动画,这个会重复弹出")
}
</script>
解决办法:
<img src="http://zi.csdn.net/intel_120x60.gif" onload='gorush(this)'>
<script type="text/javascript">
function gorush(obj){
alert("这样,就只会弹出一次")
obj.onload=null;
}
</script>
如果 src设置为 静态 gif 或者 jpg ,bmp等其他格式,也不会出现这个bug
相关文章推荐
- ie 处理 gif动画 的onload 事件的一个 bug
- ie 处理 gif动画 的onload 事件的一个 bug
- ie 处理 gif动画 的onload 事件的一个 bug
- IE处理GIF动画图片onload事件的一个BUG
- ie 处理 gif动画 的onload 事件的一个 bug
- IE下gif动画onload事件会重复触发
- js动画--一个小bug处理下
- 利用IE对多帧GIF的onload事件重复执行的原理实现(JavaScript多线程的实现)
- 关于img的onload事件兼容ie下的bug问题
- c1 flexgrid 4.0J中的一个事件处理的bug
- jQuery 1.7 正式版已经可以下载使用。jQuery是一个JavaScript库,它简化了HTML文档遍历,事件处理,动画和为网络快速发展的Ajax交互。jQuery 1.7 版本加入了新的事件API .on() 和 .off(),提
- IE9的一个BUG:propertychange和input事件在拖拽 / 剪切 / 删除时无法触发
- js动画---一个小bug的处理
- 一个价值几个小时的BUG -- 处理循环
- 一个利用了异步处理,事件驱动,对象序列化等技术的类Parser完整代码示例
- js模拟一个回车事件(ie下支持)
- js处理一个div里面多个点击事件时出现的事件冲突 重复的解决方法 事件冒泡
- onload 和 onunload 事件可用于处理 cookie。
- htmlparser 处理标签的一个bug
- 今天又发现IE的一个BUG!与Binary Behavior有关