2016-10-25 4 views
0

Ich möchte Wetter bestimmen Ich kann ein Bild vom Server holen. Die URL für den Dateiserver wird generiert. Ich beschloss, die natürliche Höhe des Bildes zu überprüfen. Dieser Code funktioniert, wenn ich eine Seite neu lade, aber wenn ich versuche, das Bild zum ersten Mal zu holen, funktioniert es nicht. Ist das ein Problem mit dem Timing oder ist das Code-Snippet komplett falsch?Prüfen, ob Bild geladen werden kann

<p id="buildingPh"></p> 

<script> 

    $("#buildingPh").html("<img id='gebaeudeBild' width='100%' src='[image/url]'></img>"); 

    $(document).ready(function() { 
     if (document.getElementById("gebaeudeBild").naturalHeight == 0) { 
      $("#buildingPh").html("No image found."); 
     } 
    }); 

</script> 

Dies ist das gesamte Skript. Ich bin mit AEM so dre nicht mehr Code ist

+0

Sie sind also einige andere Code mit dem Bild zu bekommen? Führen Sie dies auf 'document.ready()' aus, nachdem alle Assets geladen wurden? Sie müssen weitere Details hinzufügen. –

+1

Bitte geben Sie weitere Details/Code an. Wie bekommst du das Bild? Ist es über eine asynchrone Methode? –

+0

Sie können mit '.length' prüfen, ob etwas existiert. z. 'if ($ ('# image'). length) { // ID existiert, mache etwas }' –

Antwort

0

Da Sie mit JQuery versuchen, die Funktion in jQuerys Wrapper für Dokument Einwickeln bereit:

$(function() { 

    if (document.getElementById("gebaeudeBild").naturalHeight == 0) { 
     $("#buildingPh").html("No image found."); 
    } 
}); 

Dies ist nur eine Vermutung, da es nicht viel Detail ist vorgesehen in der Frage. Scheint hier ein asynchrones Problem zu sein, wenn es nicht funktioniert, wenn Sie das Bild zum ersten Mal holen.

+0

Ist das nicht ein IIFE? jQuery verwendet 'document.ready()', um beim Laden der Seite ausgeführt zu werden. –

+0

@PaulRedmond: jQuery bietet verschiedene Möglichkeiten zum Hinzufügen eines Ready-Handlers, siehe https://api.jquery.com/ready/ – CBroe

+0

Dies ist eine Kurzform von https://learn.jquery.com/using-jquery-core/document -ready/ –

2

Vereinbaren Sie mit @ lee2808 aber ich denke, Bild load wenn geeignetere Bildfehlerereignis zu handhaben ..

$("#buildingPh").html("<img onerror='error()' id='gebaeudeBild' width='100%' src='[image/url]'></img>"); 

    function error() { 
     $("#buildingPh").html("No image found.");  
     }; 
+0

plus eins für den onerror Event-Handler –

Verwandte Themen