2010-09-09 6 views
14

Ich habe mein Bild in einer if-Anweisung:Wie verbirge ich kaputte Bilder in Javascript?

if (item.image) 
    historyHtml += '<a href=' + item.image + ' class="image" target="_blank"><img src="' + item.image +'" width="111px"/></a>'; 
+1

"broken image" definieren? Ich verstehe nicht. –

+0

Wenn das item.image von einer defekten URL stammt. Zum Beispiel wenn es das gelesene X zeigt: http://img807.imageshack.us/img807/8431/brokenimage.png – jprim

Antwort

33

Sie die onerror Handler verwenden können. In der Inline-Form, sieht es wie folgt aus:

<img src="someimage.jpg" onerror="this.style.display='none';" /> 
+0

Hallo Piskvor, vielen Dank. Ich habe das ausprobiert und es gibt mir Fehler zurück: if (item.image) historyHtml + = ''; – jprim

+2

@jprim: "Fehler" ist ärgerlich vage. Was passiert genau, wenn du das versuchst? – spender

+3

@jprim: Du entkommst Zitate nicht korrekt. Versuchen Sie Folgendes: if (item.image) historyHtml + = '' – spender

8

Wie @piskvor sagt, tatsächlich das Bild in einem img-Tag geladen ist der einzige Weg, um herauszufinden, ob die URL gebrochen ist oder nicht. Das Ereignis error wird ausgelöst, wenn das Laden fehlschlägt.

Aber mit Blick auf Ihren Code, macht vielleicht das Gegenteil Ansatz am sinnvollsten: Verbergen Sie die <a> standardmäßig, und zeigen Sie es im onload Ereignis des Bildes.

Gekürzte:

<a href=".." id="image228" style="display: none"> 
<img src="..." onload="this.parentNode.style.display = 'block'"> 
</a> 
+0

Hallo Pekka, danke für deine Hilfe. Wenn ich diesen Code in den Link einfüge, bekomme ich immer noch Fehler. – jprim

+1

@jprim * was * Fehler? –

+0

Syntaxfehler in Dreamweaver bei der Entwicklung. Ich habe es von Spender unten bekommen. Vielen Dank. – jprim