1

我正在制作一个搜索工具,公司的所有员工都可以在其中找到他们的名字。这些值是使用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>"; 

谢谢

4

4 回答 4

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 回答
1
if (typeof searchResults[i].photoURL === "undefined") {
    searchResults[i].photoURL = imagesURL + "silhouette.jpg";
}
于 2012-09-18T07:03:29.923 回答
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 回答