9

画像をプリロードして、高さと幅をコンテナに設定しようとしています。

後続の更新でロードに失敗するため、問題は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
        });
    };

どんな提案でもありがたいです、ありがとう。

4

2 に答える 2

30

onloadを設定する前に、コールバックを設定する必要がありますsrc

load画像がキャッシュされると、コールバックが設定される前にイベントが生成されるため、onloadコールバックはコードで呼び出されません。

これを行う :

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';
于 2013-01-20T21:41:50.473 に答える
4

これは、ie7とie8がどれだけ遅れているかです。onloadイベントの後にsrcを設定した後でも、イベントリスナーはそれを見逃します。

これをチェックしてください、これは私が私のプロジェクトの1つのために最終的にしなければならなかったことです-これの準備はできていますか?Settimeout。うん!つまり、つまり、物事を「機能」させるためにコードを記述しなければならないのは、このように遅れています。

myImage.onload = doSomething;

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

驚異的-信じられないほど....

于 2014-03-05T21:11:01.380 に答える