2012-09-18 54 views
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 

我認爲1解決方案是把圖像的代碼放在try/catch塊中。但我個人不喜歡try/catch塊。

[編輯1] 我同意你關於存在和未定義的檢查。結果數組中只有鏈接存在。但它是一個腐敗的聯繫。在將它們添加到Javascript中的html之前,有沒有什麼辦法檢查鏈接?

[EDIT 2] 誤差即時得到是:GET HTTP:// ... /---.jpg 404(未找到)

[溶液]注意到的onerror =此。 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

+1

我覺得這回答了你的問題: http://stackoverflow.com/questions/ 9022427/img-see-if-src- – Lian

+0

確實如此。是否有可能在onerror中直接更正img src? – Marcel

回答

0

[溶液]注意到1行的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 =' 替換給出使用onerror背後所提供的SRC SRC

1
if (typeof searchResults[i].photoURL === "undefined") { 
    searchResults[i].photoURL = imagesURL + "silhouette.jpg"; 
} 
1
if (!searchResults[i].photoURL) { 
     searchResults[i].photoURL = imagesURL + "silhouette.jpg"; 
    } 
1

可以檢查通過卅一存在searchResults[i].photoURL NG:

if(searchResults[i].photoURL) { 
    // your code 
} else { 
    // what to do if not found 
}