Javascript ie8中未调用映像的onload回调

Javascript ie8中未调用映像的onload回调,javascript,jquery,Javascript,Jquery,我正在尝试预加载图像并将高度和宽度设置为容器 问题似乎在于ie8中的缓存,因为它无法在后续刷新时加载 我查阅并尝试了多种解决方案,但似乎没有任何效果,至少不是始终如一 当前Javascript: img = new Image(); img.src = '/images/site/image.jpg'; img.onload=function(){ var width = img.width + 'px'; var height = img

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

问题似乎在于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,事件侦听器仍然会忽略它

看看这个,这就是我最后不得不为我的一个项目做的事情——准备好了吗?设置超时。是的!这就是为什么你必须写代码才能在ie中“工作”


难以置信……

谢谢你的回答!在这里,我第一百万次想知道为什么在其他浏览器上运行的代码在IE中不起作用。在设置“src”之前设置onload似乎是违反直觉的,但是这个简单的开关现在让我的代码在IE8中工作!再次感谢!
myImage.onload = doSomething;

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