2009-08-26 15 views
2

In Fällen, in denen das fehlende Bild (unterbrochener Link zum Bild) für den Internet Explorer platziert wurde, werden ein Kreuz und ein Rahmen angezeigt.Fehlendes Bildkreuz und Rahmen in Internet Explorer

Können wir dieses Kreuz und den Rahmen für beschädigte Bilder entfernen?

Internet Explorer 7 image http://img295.imageshack.us/img295/3029/internetexplorer.png

Siehe unten, wie es auf Firefox

Firefox broken image http://img31.imageshack.us/img31/1123/firefoxg.png

benötigen sieht Wir von der Grenze zu befreien und für gebrochenes Bild überqueren. Kann dies durch CSS behoben werden?

+0

Warum würden Sie eine fehlende Bild in erster Linie laden? – Randell

+0

Wir haben eine Datenbank mit vielen Bildern. In einigen Fällen könnte ein Bild fehlen, ABER wir möchten keine fehlenden Bilder wie in IE zeigen. Außerdem gibt es einen Overhead, um jeden Ordner zu überprüfen und zu überprüfen, ob das Bild vorhanden ist oder nicht, bevor es dem Benutzer angezeigt wird. – ToughPal

Antwort

3

Ich denke, dass Sie Javascript verwenden müssen. Sie können so etwas verwenden:

var imgs = document.getElementsByTagName("img"); 

for (i = 0; i < imgs.length; i++) { 
    imgs[i].onerror = function() { 
     imgs[i].parentNode.removeChild(imgs[i]); 
    } 
} 

Mit dieser Funktion werden Sie alle Bilder mit Fehlern entfernen.

+0

Danke, jede CSS-Lösung dafür? Wir haben möglicherweise auch einige divs, die von AJAX geladen werden, und wir können diesen Fehler möglicherweise nicht an jedes Bild anhängen. – ToughPal

2

Basierend auf Ihrem Kommentar, warum können Sie nicht einfach überprüfen, ob das Bild in Ihrem serverseitigen Skript vorhanden ist, bevor Sie das HTML ausgeben? Es sollte nicht viel Aufwand sein.

In PHP wäre es so etwas wie:

<?php 
if (file_exists($imgUrl)) { 
    echo '<img src="', $imgUrl, '" alt="" />'; 
} 
?>