So scheint es einige Möglichkeiten zu geben, mit zerbrochenen Bildern auf einer HTML-Seite umzugehen. Ich würde gerne wissen, welche Wege in der Öffentlichkeit genutzt werden und welche Methoden als Best Practice angesehen werden.Was ist der optimale Weg, um beschädigte Bilder zu bearbeiten?
starten ich einige mich gerne haben gesucht:
function imgErr(source) {
source.src = /images/missing.jpg";
source.onerror = "";
return true;
}
<img src="test.jpg" alt="test" title="test" onerror="imgErr(this);" />
Pros
: funktioniert jedes Mal, die Veranstaltung wird immer gefangen. Der Benutzer sieht niemals ein defektes Bild. Scheint gut über die Browser zu funktionieren. Nachteile: onerror Tag auf jedes Bild erforderlich, Funktion imgErr (Quelle) muss im Kopf sein, um die Fehler zu fangen, verlangsamt sich die Benutzer die Ladezeit$('img').error(function(){
$(this).attr('src', 'missing.jpg');
});
Pros erlebt: sehr wenig Code, auf alle Bilder funktioniert ohne ihre Markup zu ändern, können Cons außerhalb des Kopfes vorhanden sein: die Fehlerereignis in Abhängigkeit von der Geschwindigkeit der Seiten onload Ereignis verpassen, verlangsamt sich die Benutzer erfahren Ladezeit
$(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: überall werden platziert auf der Seite, wird die Bilder reparieren, egal wann es ausgeführt wird, verlangsamt den Benutzer nicht s erfahrene Ladezeit Nachteile: zeigt ein gebrochenes Bild, bis es läuft erstellen eine schlechte Benutzererfahrung
In meiner Situation Ladezeit ist das größte Problem, aber ich kann nicht die letzte Option in IE richtig arbeiten, wie es gebrochen funktioniert und keine gebrochenen Bilder!
Cheers, Denis
Eine Variation dieser Antwort kann eine ISAPI-Filter/Apache-mod Griff Anfragen für die gängigen Bilddateierweiterungen zu lassen, so dass Sie brauchen, um alle src Ihrer img Attribute an Ihrem Handler-zu-Punkt nicht zu ändern . – grenade
Ich stimme dem zu.Ein generischer Handler würde meine Wahl sein, wenn ich unnachgiebig wäre, kaputte Bilder zu reparieren. – CeejeeB
Dies könnte eine Option für mich sein, mit MVC zu untersuchen, aber ich hatte gehofft, ich könnte es einfach auf der Serverseite halten! –