2016-05-14 4 views
1

Ich mache eine Website mit einem Popup. Das Popup soll bis zu 12 Bilder enthalten. Ich nenne meine Bilder pizza1.jpg, pizza2.jpg, pizza3.jpg und so weiter.Wie lösche ich ein Bildelement, wenn seine Quelldatei nicht existiert

Gibt es einen Weg mit reinem JavaScript, um die Bilder nur erscheinen zu lassen, wenn es tatsächlich eine Datei mit dem Namen gibt, nach dem ich gesucht habe?

This Question ist ähnlich, aber alle Antworten sind kompliziert und nur mäßig verwandt.

+0

werden Sie sie über AJAX abrufen? – cuniculus

+0

Bitte überprüfen Sie die Antwort dort und wenn Bild nicht existiert, dann zeigen Sie es nicht an. Wenn Sie weitere Hilfe benötigen, versuchen Sie genauer zu sein, fügen Sie etwas Code hinzu. – skobaljic

+0

Die Antworten der anderen Frage sind nur komplexe Lösungen für ein viel komplizierteres Problem als meines. Die akzeptierte Antwort auf diese Frage ist einfach für meine Situation. –

Antwort

3

Sie können onError Ereignis für entfernen Objekt aus dem Pop-up verwenden:

<img src="src" onError="removeElement(this);" /> 

Überprüfen Sie, ob es funktioniert:

function removeElement(element) { 
    element.remove(); 
} 
1

Sie sollten das Ereignis onerror des Elements img behandeln.

1

Sie können eine Image instance erstellen und seine Onload-Ereignis verwenden, wenn es zu sehen hat geladen. Wenn dies der Fall ist, fügen Sie das Bild einfach an ein beliebiges Element an.

Demo

var imgurls = [ 
 
    "https://placekitten.com/g/64/64", 
 
    "https://placekitten.com/g/32/32", 
 
    "https://placekitten.com/g/none/200", 
 
    "https://placekitten.com/g/100/100", 
 
    "https://placekitten.com/g/24/24" 
 
]; 
 

 
imgurls.forEach(function(url){ 
 
    let img = new Image(); 
 
    img.onload = onImageLoad; 
 
    img.src = url; 
 
}); 
 
    
 
function onImageLoad(){ 
 
    document.body.appendChild(this); 
 
}
<div id="container"> 
 
    
 
</div>