Quindi sembra che ci siano pochi modi per gestire le immagini danneggiate su una pagina HTML. Mi piacerebbe sapere quali sono i modi in uso popolare e quali sono i modi per essere considerati le migliori pratiche?Qual è il modo ottimale per gestire le immagini rotte?
Per avviare Ho guardato un po 'di me stesso piace:
function imgErr(source) {
source.src = /images/missing.jpg";
source.onerror = "";
return true;
}
<img src="test.jpg" alt="test" title="test" onerror="imgErr(this);" />
Pro: funziona ogni volta, l'evento sarà sempre essere catturato. L'utente non vede mai l'immagine rotta. Sembra funzionare bene attraverso i browser. Contro: tag onerror richiesto su ogni immagine, funzione imgErr (fonte) ha bisogno di essere in testa per catturare gli errori, rallenta gli utenti hanno sperimentato il tempo di caricamento
$('img').error(function(){
$(this).attr('src', 'missing.jpg');
});
Pro: molto poco codice, funziona su tutte le immagini senza cambiare il loro margine di profitto, può essere posto al di fuori della testa Contro: può mancare l'evento di errore a seconda della velocità delle pagine degli eventi onload, rallenta gli utenti esperti il tempo di caricamento
$(window).load(function() {
$("img").each(function() {
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
var src = $(this).attr("src");
var suffix = src.substring(src.length - 6, src.length).split('.')[0];
suffix = suffix.charAt(suffix.length - 1);
$(this).attr("src", "/static/images/generic/missing_" + suffix + ".jpg");
}
});
});
Pro: può essere posizionato ovunque sulla pagina, correggerà le immagini non importa quando è in esecuzione, non rallenta l'utente Contro: mostra un'immagine rotta fino a quando non crea una scarsa esperienza utente
Nella mia situazione il tempo di caricamento è il problema più grande ma non riesco a ottenere l'ultima opzione per lavorare in IE correttamente come cambia rotta e nessuna immagine spezzata allo stesso modo!
Cheers, Denis
Una variante di questa risposta potrebbe essere quella di lasciare un ISAPI-filtro/apache-mod gestire le richieste per le estensioni di file immagine più comuni in modo che non c'è bisogno di cambiare tutta la tua src img attributi per indicare al gestore . – grenade
Sono d'accordo con questo.Un gestore generico sarebbe la mia scelta se fossi irremovibile nel correggere le immagini rotte. – CeejeeB
Questa potrebbe essere un'opzione per me per cercare in MVC ma speravo di poterlo mantenere semplice sul lato server! –