当破坏的URL不存在时,如何用默认值替换损坏的img url

时间:2012-09-18 07:01:08

标签: javascript html

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

4 个答案:

答案 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