会社の全社員が自分の名前を見つけられる検索ツールを作っています。これらの値は、jsonを使用して取得されます。(これには、従業員の画像へのリンクが含まれます)。
私の質問。リンクが存在しない場合があります(自動生成のために他のシステムからの入力が間違っています)。もしそうなら、私は画像をデフォルトのものに置き換えたいと思います。画像リンクが存在しない/間違っているかどうかを確認するにはどうすればよいですか?
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