1

会社の全社員が自分の名前を見つけられる検索ツールを作っています。これらの値は、j​​sonを使用して取得されます。(これには、従業員の画像へのリンクが含まれます)。

私の質問。リンクが存在しない場合があります(自動生成のために他のシステムからの入力が間違っています)。もしそうなら、私は画像をデフォルトのものに置き換えたいと思います。画像リンクが存在しない/間違っているかどうかを確認するにはどうすればよいですか?

    for ( i = 0; i < totalResultsToShow; i++) {
        //when the photoURL isn't given     
        if (searchResults[i].photoURL == "") {
            searchResults[i].photoURL = imagesURL + "silhouette.jpg";
        }
        //when the photoURL doesn't exists

        //do something??

        HTMLContent += "<div class=resultTableRow id=" + i + " onclick=resultClicked(" + i + ");>";
        HTMLContent += "<div class=resultTableItemImage><img width ='" + resultsImageWidth + "' src='" + searchResults[i].photoURL + "' class=stretchWidth /></div>";
        HTMLContent += "<div class=resultTableItemUser><p>" + searchResults[i].user + "</p></div>"
        HTMLContent += "<div class=resultTableItemUsername><p>" + searchResults[i].username + "</p></div>"
        HTMLContent += "</div>"; "</div>";
    }
//put results on screen

1つの解決策は、画像のコードをtry/catchブロックに配置することだと思います。しかし、私は個人的にtry/catchブロックが好きではありません。

[編集1]存在と未定義のチェックについてあなたに同意します。結果配列にはリンクのみが存在します。しかし、それは壊れたリンクです。リンクをJavascriptのhtmlに追加する前にリンクを確認する方法はありますか?

[編集2]取得中のエラーは次のとおりです:GET http:// ....../---.jpg404(見つかりません)

[解決策]onerror= this.src ='"+ imagesURL+"/silhouette.jpg'に注意してください

HTMLContent += "<div class=resultTableItemImage><img width ='" + resultsImageWidth + "' src='" + searchResults[i].photoURL + "' class=stretchWidth onerror=this.src='"+imagesURL+"/silhouette.jpg' /></div>"; 

Thnx

4

4 に答える 4

1
if (typeof searchResults[i].photoURL === "undefined") {
    searchResults[i].photoURL = imagesURL + "silhouette.jpg";
}
于 2012-09-18T07:03:29.923 に答える
1
if (!searchResults[i].photoURL) {
        searchResults[i].photoURL = imagesURL + "silhouette.jpg";
    }
于 2012-09-18T07:04:22.220 に答える
1

searchResults[i].photoURL次のように言って、の存在を確認できます。

if(searchResults[i].photoURL) { 
    // your code 
} else { 
    // what to do if not found
}
于 2012-09-18T07:04:29.770 に答える
0

[解決策] onerror= this.src ='"+ imagesURL +"/silhouette.jpg'
Html+javascriptが1行になっていることに注意してください。

HTMLContent += "<div class=resultTableItemImage><img width ='" + resultsImageWidth + "' src='" + searchResults[i].photoURL + "' class=stretchWidth onerror=this.src='"+imagesURL+"/silhouette.jpg' /></div>"; 

エラーが発生すると、「onerror =」は、指定されたsrcをonerrorの背後にある指定されたsrcに置き換えます。

于 2012-09-24T18:14:10.510 に答える