我正在制作一个搜索工具,公司的所有员工都可以在其中找到他们的名字。这些值是使用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
我认为一种解决方案是将图像的代码放在 try/catch 块中。但我个人不喜欢 try/catch 块。
[编辑 1] 我同意你关于检查存在和未定义的观点。结果数组中仅存在链接。但它是一个损坏的链接。有没有办法在将链接添加到 Javascript 中的 html 之前检查链接?
[编辑 2] 我得到的错误是: GET http://...... /---.jpg 404 (Not Found)
[解决方案] 注意 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>";
谢谢