2010-08-16 9 views
8

Devo essere in grado di rilevare se un'immagine è rotta e sostituirla con un'immagine predefinita se il collegamento dell'immagine è rotto. So che potrei fare questo con un proxy di immagine, ma speravo di farlo al volo con javascript.Modo per rilevare le immagini rotte in javascript?

+2

post simile: http://stackoverflow.com/questions/92720/jquery-javascript-to-replace-broken-images – jessegavin

risposta

11

Credo che sia l'evento onerror dell'elemento img. onerror=function(){} sebbene non l'abbia mai usato.

-1

Esempio di codice:

<script language='javascript'> 
function defaultImage(img) 
{ 
    img.onerror = ""; 
    img.src = 'default.gif'; 
} 
</script> 
<img alt="My Image" src="someimage.gif" onerror="defaultImage(this);" /> 
+2

Nel solito caso, funzionerà correttamente. Ma sono abbastanza sicuro che ciò causerà un loop infinito se 'default.gif' è anche rotto/non trovato. Ecco perché in http://stackoverflow.com/questions/92720/jquery-javascript-to-replace-broken-images la risposta AC imposta img.onerror su blank nella funzione defaultImage –

+0

Good point. Lo cambierò. –

5

Come ogni caso il onerror si propagheranno verso l'alto sul DOM, così da poter prendere un gestore generico per questo tipo di errori.

<script type="text/javascript"> 
jQuery(document).bind('error', function(event) { 
    console.log(event.target.src); 
}); 
</script> 
Problemi correlati