Image.onload在IE下无法获取宽高的问题

no comments , Tagged : ,

今天在IE下想在onload事件获取img的宽高,但一直取不到值,就在网上搜索了一下,原来又是和顺序有关,XXX。我们先来看下面这个例子:

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

单纯这样看,并没不会觉得有什么问题。但在IE中存在BUG,第一次打开页面时还正常,之后就没反应了,怎么刷新也无效,这是因为图片已经被缓存在本地了。

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

我们现在改成上面这样,问题就解决了。我们还可以通过img.complete先来判断是否已缓存在本地,如果是那就不用用onload去获取了

要注意的是在IE6下,GIF含有多帧的图片会多次加载,所以在onload事件里,记得要把img.onload设置为null

Drop Comments

大笑 感动 酷 无语 色咪咪 雷人 晕 怒 囧 打酱油 嘿嘿 yy