我正在制作一个搜索工具,公司的所有员工都可以找到他们的名字。使用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块中。但我个人不喜欢尝试/捕获块。
[编辑1] 我同意你关于检查存在和未定义。结果数组中只存在链接。但它是一个腐败的环节。有什么方法可以在将链接添加到Javascript中的html之前检查链接吗?
[编辑2] 我得到的错误是:GET http:// ...... /---.jpg 404(未找到)
[解决方案]注意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
答案 0 :(得分:1)
if (typeof searchResults[i].photoURL === "undefined") {
searchResults[i].photoURL = imagesURL + "silhouette.jpg";
}
答案 1 :(得分:1)
if (!searchResults[i].photoURL) {
searchResults[i].photoURL = imagesURL + "silhouette.jpg";
}
答案 2 :(得分:1)
您可以通过说:
来检查是否存在searchResults[i].photoURL
if(searchResults[i].photoURL) {
// your code
} else {
// what to do if not found
}
答案 3 :(得分:0)
[解决方案]注意 onerror = this.src ='“+ imagesURL +”/ silhouette.jpg'
一行中的HTML + javascript。
HTMLContent += "<div class=resultTableItemImage><img width ='" + resultsImageWidth + "' src='" + searchResults[i].photoURL + "' class=stretchWidth onerror=this.src='"+imagesURL+"/silhouette.jpg' /></div>";
当发生错误时,'onerror ='用在错误背后提供的src替换给定的src