IE浏览器下图片加载onload事件失效解决方案

快乐打工仔 分类:实例代码

当图片加载完毕可以触发onload事件,这对于火狐或者谷歌浏览器来说没有任何问题,但是对于IE浏览器可能会有一些困扰,因为有时候并不能够触发事件,下面简单介绍一下产生这种问题的原因和解决此问题的方法。

代码实例:

var img=new Image();
img.src="antzone.gif";
img.onload=function(){
  //code
}

上面的代码中,当图片加载完毕就会触发onload事件,执行事件处理函数。

在IE里面第一次加载页面没有任何问题,但是再刷新页面的时候,就不会触发此事件了,这是因为这个时候IE浏览器是从缓存中读取的图片,而不是从服务器重新加载,需要强调一下这个现象只出现在IE8和IE8以下浏览器会出现此问题,下面介绍一下如何解决此问题,代码修改如下:

var img=new Image();
img.onload=function(){
  //code
};
img.src="antzone.gif";

上面的代码,只要调整一下时间处理函数和图片加载路径的先后顺序就可以了。

其实并非onload事件没有触发,而是由于直接从缓存直接读取图片速度很快,导致没有注册完事件处理函数的时候,图片已经加载完毕,事件即便触发也不会有任何反应。

回复

我来回复
  • 暂无回复内容