2013-02-01 111 views
1

我正在開發一個圖片庫網站,未來可能會有數千張照片。所有圖片都來自其他網站/ API或用戶上傳。檢查客戶端的圖片存在

用戶上傳的圖片

<img src="../images/example.jpg" alt="" />

外部圖像

<img src="http://example.com/xyz.jpg" alt="" />

讓說,從外部網站圖像刪除。有沒有一種方法來檢查照片存在從客戶端使用jQuery/JavaScript等?

我認爲什麼是

我)我熱鏈接從外部網站上的圖像

II)的圖像從外部網站,在網站的第一負載,jQuery將死鏈接信息使用AJAX送我到服務器中刪除etc

iii)我會修復這個鏈接。

在此先感謝...

+2

http://www.whathaveyoutried.com的 –

+0

可能重複[如何判斷動態加載圖像存在(http://stackoverflow.com/questions/5502779/how-to-tell-if-動態加載圖像存在) –

+1

[_error_](https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/error)[事件監聽器](https://developer.mozilla.org/en/ docs/DOM/element.addEventListener),任何人? –

回答

0

你可以做這樣的事情......

$(function() { 
    $(document).on("error", "img", function() { 
     // do something with $(this) here 
    }); 
}); 

這將檢測破碎的形象,讓你做一些事情。

+0

射手,腳本檢測外部網站是否重定向到其他「不可用.jpg」並將圖像發送回我的鏈接? –

+1

您無法檢測到來自外部網站的重定向 - 這是不可能的。你可以在加載時檢查文件名,看看它是不是'不可用.jpg',但是如果這樣做改變了你的腳本將無法工作。 – Archer

1

你可以在你的外部圖像使用「的onerror」事件,並創建一個服務器端腳本來處理錯誤,並返回一個通用的「圖像未找到」的形象,而您解決問題。

喜歡的東西...

onerror="this.src='/fiximage.php?q='+this.src;" 
0

在這種情況下,您可以使用onerror事件。

var imgs = document.getElementsByTagName("img"), 
    img, i = 0; 
while (img = imgs[i++]) { 
    img.onerror = function() { 
     // just an example for error reporting 
     Ajax.send("POST /image_error.php", {src:img.src}); 
     // change img src 
     img.src = "images/error.jpg"; 
    }; 
}