2

これは何千回も聞かれる質問のようです...しかし、私はそれに2日間を費やし、まだそれを解決していません。

私はこのような答え、特に最初の答えを見てきました。しかし、javascriptだけを使用してそれを実行しようとすると、プログラムは待機しません。返品しても

if(image.complete) {return path;}

画像の読み込みを待つ以外に何もせずに終了します。

これが私のコードです。関数の戻り値はd3.jsのsvg:imageの属性の値であるため、純粋にJavascriptでそれが必要です。

.attr("xlink:href", function (d) {
          var imagePath = "http://xxxxx/peopleimages/" + d.num + ".jpg";
          var img = new Image();
          function onErrorHandler(image) {
              image.onerror = "";
              image.src = genericPath;
              return false;
          }
          img.onerror = onErrorHandler(this);
          img.src = imagePath;

          return img.src;

前もって感謝します!

4

2 に答える 2

0

何が必要かわかりませんが、通常はonloadとonerrorを使用しており、問題はありません。そのようなもの:

function loadImg(targetId,imgURL){
    var contenedorImgs = document.getElementById("container");
    target = document.getElementById(targetId);
    var img = new Image();
    img.onload = function(){
        contenedorImgs.replaceChild(img,target);
        img.id = targetId;
    };
    img.onerror = function(){
        img.src = "http://marcocavalieri.es/fotos/miniaturas/1B.jpg";
    };
    img.src = "http://dev.marcocavalieri.es/fotos/" + imgURL;
} 

このコードは、私の娘と私が開発した実際のコードの抜粋です。http://dev.marcocavalieri.esで確認できますこの場合、フェードインとフェードアウトが必要なため、画像をプリロードします。あなたはフィドルで生きている抜粋の例を見ることができます:http://fiddle.jshell.net/hmariod/kCRHV/1/

Bonneannéeetbonnesanté!

于 2013-01-01T18:19:01.113 に答える
0

コードは次のようになります。

function onErrorHandler() {
    $(this).off('error', onErrorHandler);
    this.src = genericPath;
    return false;
}
$(img).on('error', onErrorHandler);
img.src = imagePath;

return img.src;
于 2012-09-27T16:04:59.803 に答える