IE8、firfox关于(new Image()).onload的不执行的问题

分类:Javascript| 发布:佚名| 查看: | 发表时间:2014/7/11

如果要获取一张图片原本的高度和宽度,我们一般这样获取

var url = "../images/logo.png";
var img = new Image();
img.src = http://camnpr.com/logo.png;
img.onload = function(){
  //do something.....
}

当图片从服务器传到本来(也即下载完成),就会触发onload事件。但是,如果图片已经缓存在本地的话,在ie8、firfox就有问题了。因为图片已经缓存在本地,所以在没执行js代码前已经触发onload事件,导致没有执行onload里面的代码。

解决方案:

把代码改成

var url = "../images/logo.png";
var img = new Image();
img.onload = function(){
  //do something.....
      //img.complete 这个也不需要了
}
img.src = http://camnpr.com/logo.png;

这样的话,就可以在js代码执行后加载图片,也保证了onload的执行。

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/javascript/1456.html