在ie8中未调用的图像上的onload回调

我正在尝试预加载图像并将高度和宽度设置为容器。

问题似乎与ie8中的缓存有关,因为它无法在后续刷新时加载。

我抬起头来尝试了多种解决方案,但似乎没有任何工作,至少不是一贯的。

当前的Javascript:

img = new Image(); img.src = '/images/site/image.jpg'; img.onload=function(){ var width = img.width + 'px'; var height = img.height + 'px'; $('#container').css({'width':width, 'height':height }); }; 

任何建议都表示赞赏,谢谢。

您必须在设置src之前设置onload回调。

缓存图像时,不会使用您的代码调用onload回调,因为在设置回调之前会生成load事件。

做这个 :

 img = new Image(); img.onload=function(){ var width = img.width + 'px'; var height = img.height + 'px'; $('#container').css({'width':width, 'height':height }); }; img.src = '/images/site/image.jpg'; 

这就是延迟ie7和ie8的延迟,即使在onload事件之后设置src之后,事件监听器仍然会错过它。

看看这个,这是我最终必须为我的一个项目做的 – 准备好了吗? setTimeout的。 对! 这就是你必须编写代码以使事情“工作”的延迟。

 myImage.onload = doSomething; var slowMeDown = setTimeout(function(){ myImage.src = "img/somePic.jpg"; },300); 

取消吓坏,可信….