Timo Ballin: überprüfung ob die grafik exsistiert.

Hallo,

vielleicht hat einer von euch eine guten gedanken...
Ich möchte gerne überprüfen ob eine grafik existiert.

Der Name der Datei wird von einem cgi in die seite geschrieben. leider überprüft das cgi nicht ob irgend ein hansel den datei namen falsch eingegeben hat und an dem cgi kann ich nichts ändern.

meine idee:

ich habe versucht über das image objekt anhand der grösse herauszubekommen ob die grafik geladen wurde. klappt prima. nachteil: wenn ich die standart 'kein bild vorhanden grafik' über die .src eigenschaft nachlade wird sie in der icon grösse des browsers bild-nichtgefunden-icon angezeigt (30x30pics)

wenn man ein neues Image objekt erzeugt ist die grösse auch immer 0x0 pics egal ob die datei existiert oder nicht.

tja... wer 'ne idee hat... immer her damit.

Timo

  1. Hallo Timo,
    vielleicht hilft Dir folgendes:
    <img src="gibtsnicht.gif" onError="alert('Grafik kann nicht angezeigt werden')">

    Gruß
    hartmann

    1. Hallo Timo,
      vielleicht hilft Dir folgendes:
      <img src="gibtsnicht.gif" onError="alert('Grafik kann nicht angezeigt werden')">

      Gruß
      hartmann

      Danke erstmal..aber:
      ja... so stehts in Selfhtml...

      äh. das die grafik nicht geladen werden konnte ist jedoch offensichtlich. das versuche ich ja gerade zu verdecken.

      ich habe auch schon probiert das bei einem 1x1 pixel grossen version des bildes mit onError zu notieren und dann das eigenliche bild später mit document.write zu schreiben. im falle eines fehlers wird dann die variable mit der bild url vorher von onError verändert.
      funktioniert lokal auch ganz prima. im netz hingegen wird offensichtlich das onerror event zu spät ausgelöst.

      falls jemnad also noch eine idee hat...

      Timo

      1. Probiers doch mal mit images.complete !
        Link: <../../tecbbe.htm#a3>

        fl0ne

        1. Probiers doch mal mit images.complete !

          fl0ne

          ja. ist ein interessanter ansatz. man könnte überpüfen ob meine vorangegangene 1x1 pixel grosse version komplett geladen wurde.

          allerdings müsste man dann den aufbau der seite sollange verhindern bis das bild komplett geladen wurde oder bis der onError event ein fehler meldet und dann das eigentliche bild laden.

          mal sehen ob sowas praktikabel ist.

          danke für den tip.

          Timo

  2. Ich möchte gerne überprüfen ob eine grafik existiert.

    Und was soll in Abhängigkeit davon passieren? Willst Du eine alternative Graphik anzeigen oder was sonst?

    leider überprüft das cgi nicht ob irgend ein hansel den datei namen falsch eingegeben hat und an dem cgi kann ich nichts ändern.

    Hm, das hängt davon ab, was Du auf Deinem Server alles tun kannst.

    Wenn Du eine eigene CGI-Anwendung installieren darfst, könntest Du ein Perl-Skript schreiben, das über den LWP-Modul das gesamte zu erzeugende HTML-Dokument absaugt, dieses ggf. parsen und nachsehen, was passiert ist.

    Andere Idee: Wenn Du auf Deinem Server eine Fehlerbehandlungsroutine installieren darfst, könntest Du beim Fehlen eines Bildes ein eigenes CGI-Skript aufrufen lassen, welches ein spezielles 1*1-Pixek großes unsichtbares Bild zurückliefert ...

    Alle meine Ideen laufen darauf hinaus, das Problem auf dem Server zu bekämpfen und nicht erst im Browser. Dazu mußt Du halt auf dem Server auch irgend etwas dürfen ...