Kuno: Testen ob Bild existiert

Kann ich mittels JavaScript testen ob ein Bild existiert?
Ich habe das bisher immer per Ajax gemacht und mir danach den RequestStatus ausgeben lassen wo ja dann auch vermerkt ist ob der Request-Status 404, 200 usw. ergab.

  1. Hi Kuno!

    Für die Javascriptlösung solltest du die nötigen Dinge hier finden:

    http://de.selfhtml.org/javascript/objekte/images.htm#src
    http://de.selfhtml.org/javascript/objekte/images.htm#complete

    (mit Javascript vorladen, schauen ob das Bild komplett ist...)

    Grüße,
    Richard

    1. ich find das irgendwie blöd, dass ich die komplette Grafik laden muss.
      Ich will sie nämlich eigentlich garnicht anzeigen. Ich will nur wissen, ob sie existiert.
      Was ich also eigentlich bräuchte wäre sowas wie

        
      -e $datei  
      
      

      (PERL)

      1. ich find das irgendwie blöd, dass ich die komplette Grafik laden muss.

        Da wirst du nicht drumherum kommen, wenn du auf JS setzt.

        Was ich also eigentlich bräuchte wäre sowas wie

        -e $datei

          
        JS hat keinen Zugriff auf ein Dateisystem, insofern gibt es auch keine Tests.  
          
        Struppi.
        
      2. Hi Kuno!

        Ich will nur wissen, ob sie existiert.

        Nur mal so ein gedanklicher Ansatz: wie wäre es, wenn man folgendes Konstrukt hätte:

        <html>
        <head>
           <!-- hier javascript:
             function errorhandler //für die fehlenden Bilder
             {}

        function loadbreaker()
             {
                document.getElementsByName("tester")[0].location.href="about:blank";
             }

        window.setTimeout("loadbreaker()",1000);
        </head>
        <body>
          <iframe name="tester" src="hier eine Seite per ref laden, die alle zu testenden images als Tags enthält und mit onerror="parent.errorhandler()" den parentframe vom missing element informiert" />
          </iframe>
        </body>
        </html>

        Hier wird mittels load (1000 ms lang) geprüft, ob die Bilder in den iframe geladen werden können; tritt ein Fehler auf, so sollte dies mittels errorhandler erfasst werden. Nach 1 sekunde wird der ladevorgang durch aufruf von loadbreaker() abgebrochen.

        Das ganze ist KEIN getesteter/valider Code, sondern dient nur dazu, die Idee zu veranschaulichen.

        Vielleicht hilft es ja...

        Grüsse,
        Richard

  2. Kann ich mittels JavaScript testen ob ein Bild existiert?

    Ja, mit onload oder onerror.

    Struppi.