[HTML] Image Tag:: alt Befehl - Prüfen ob Bild existiert

Benutzer-2472

abgemeldet
1 Mai 2006
32.694
1.621
Mahlzeit,

ich möchte anstatt eines alternativen Textes ein alternatives Bild ausgeben lassen, hat da jemand ein passendes Suchstichwort für mich?

<img src="example.png" alt="example text" />


<img src="example.png" alt="anderes Bild.png" />
So gehts natürlich nicht, aber nur zur Visualisierung was ich suche ;)
 
Ich bin mir gerade nicht sicher, was du vorhast. Zu was soll das alternative Bild denn die Alternative sein? Für den Alternativ-Text gibt es eigentlich zwei Verwendungsgebiete: Anzeige, wenn das Bild nicht vorhanden ist und bei der Verwendung von Systemen für Sehbehinderte. Letzteren wird der Text dann vorgelesen.
Wenn ich das richtig verstehe, möchtest du, dass ein anderes Bild angezeigt wird, sollte eines nicht vorhanden sein. Meines Wissens ist dies nicht im HTML-Standard vorgesehen. Eine mögliche Lösung wäre folgendes: Ein PHP-Skript, welches aufgerufen wird und mehrere Bilder-URLs übergeben bekommt. Das Skript versucht das erste Bild zu laden und gibt es aus. Wenn es nicht vorhanden ist, wird das zweite Bild versucht, usw. Das wäre minimaler Programmieraufwand, würde das Problem aber lösen. Du müsstest dann einen Tag im Stil
<img src="dasSkript.php?bild=blah.png&alternative1=blah2.png&alternative2=blah3.png..."> angeben.
 
Oder, man lässt den alt-Tag den Sehbehinderten und Lynx'ern und macht es mit Javascript:

HTML:
<img src="nichtvorhanden.png" onerror="this.src='vorhanden.png';" alt="Bild xyz">
 
wird nicht funktionieren, der alternative text ist ja dafür da, für den fall, dass kein bild ausgegeben werden konnte.
jetzt mal egal ob ladefehler oder lynx oder sonst was.

wenn du jetzt meinst:
"falls das bild serverseitig nicht da ist, zeig n anderes an"

dann kannst das serverseitig im img tag machen... evtl. sogar mit ajax (ich hasse ajax)
clientseitig hast das verkackt... also wenn schon das alt-tag greift... der alternative text angezeigt wird, dann ist nicht mehr viel mit bild. dass der sinn von dem ganzen ding, dass auch leute denen das bild nicht anzeigbar ist, wissem worum es sich handeln sollte.

das is nen statement von jemand der js permanent deaktiviert hat, weil selbst ajax nervt mich mittlerweile...

kann mir auch nicht vorstellen dass n img dings im alt tag anzeigbar ist... ie hat generell probleme... das klingt für mich so wie... naja den titel mitm layer ändern.... vergiss es...
falls das geht schick mir bitte, bitte, bitte ne pn
 
Das wäre minimaler Programmieraufwand, würde das Problem aber lösen. Du müsstest dann einen Tag im Stil
<img src="dasSkript.php?bild=blah.png&alternative1=blah2.png&alternative2=blah3.png..."> angeben.

Ich habs fast befürchtet, dass wir da nicht drum herum kommen aber einen Versuch war es wert ;) - danke.

JS empfinde ich als nicht so optimal, das haben heute leider etliche User geblockt, btw. je mehr geblockt wird umso schwieriger wird es eine Webseite zu gestalten :ugly:
 
Du kannst das Attribut longdesc spezifizieren, aber das sollte eigentlich auf eine URI gesetzt werden, wo das Bild beschrieben wird. Auf dieser Info-Seite könntest du dann Alternativ-Bilder anzeigen, wie dir beliebt.
Aber ob es das is, was du haben willst...

Außerdem bleibt das Problem, dass so gut wie kein Browser das unterstützt. Firefox zeigt die Adresse im Eigenschaften-Dialog an, der Rest ignoriert das Attribut einfach.

Mal dumm gefragt: Welchen Anlass hast du für sowas?
Normalerweise weißt du doch, ob ein Bild da is oder ned.
 
Die Forcedbanner sind das Problem. Ich bekomme die URL Angaben von extern, aber recht häufig sind diese entweder falsch angegeben oder die Banner nicht (mehr) vorhanden und dann steht derzeit nur eine TAN als alternativ Text und das nervt ein wenig.

Daher möchte ich, wenn das Bild nicht verfügbar ist, ein Ersatzbild einblenden. Gerade wenn den alternativtext kürzer (oder gar nicht vorhanden ist), kann man nämlich schlecht oder gar nicht mehr klicken und die Kampagne muss von mir manuell rausgeworfen werden.
 
Die Forcedbanner sind das Problem. Ich bekomme die URL Angaben von extern, aber recht häufig sind diese entweder falsch angegeben oder die Banner nicht (mehr) vorhanden und dann steht derzeit nur eine TAN als alternativ Text und das nervt ein wenig.
Genau dafür ist aber doch das alt-Attribut eigentlich da. Wenn es ein Forcedbanner ist, dann gib halt
HTML:
<img src=".." alt="Forcedbanner - www.example.com" />
an.
Gerade wenn den alternativtext kürzer (oder gar nicht vorhanden ist), kann man nämlich schlecht oder gar nicht mehr klicken und die Kampagne muss von mir manuell rausgeworfen werden.
Drum legt der Standard ab XHTML fest, dass ein alt-Attribut angegeben werden muss, weil das durchaus Sinn macht.
Statt einem Ersatzbild legst du dann einen Ersatztext fest.
 
Natürlich, so ist es aus übergangweise geregelt, aber optisch kann ein
"jvjHzM7gnaLwFwByO9Xwz6S5yakyKxg" wohl nicht mithalten. Daher würde ich dann gerne einen eigenen Banner mit einem Hinweis einbauen oder so, mal schauen wie der Banner gestaltet wird.

Erstmal kümmere ich mich jetzt darum, dass ich den zweiten Parameter an die Ausgabe hänge ;)
 
[...] aber optisch kann ein
"jvjHzM7gnaLwFwByO9Xwz6S5yakyKxg" wohl nicht mithalten.
"jvjHzM7gnaLwFwByO9Xwz6S5yakyKxg" beschreibt den Banner ja nicht wirklich aussagekräftig, oder? :roll:

Du könntest evtl. bei deinem PHP-Ansatz etwas optimieren:
Merk dir halt, welche Banner-Grafiken nicht verfügbar sind, dann musst du nicht bei jedem Aufruf bei der Quelle nachfragen. Wenn ein Banner mal einmal nicht funktioniert, wird er es später wohl auch nicht mehr - so die Annahme.

Und wenn du sowieso bei jedem Banner dieselbe Fehlergrafik einsetzen willst, dann kannst du dir ein &alternative1=fehlerbild.png an jeder URL eh sparen.

Ich würde schon nur die richtige Grafik in das src-Attribut schreiben lassen, d.h. schon beim Ausgeben der Bannerübersicht die Überprüfung machen.
Der Besucher kriegt deinen Murks dann gar nicht mit.
 
Und wenn du ein "nicht vorhanden"-Bild in den Hintergrund legst und der Banner das Bild "überschreibt"?
Normalerweise sind die ja immer 468x60, bei anderen Größen halt andere "nicht vorhanden"-Bilder anzeigen, wenn das überhaupt vorgesehen ist.
 
Normalerweise sind die ja immer 468x60, bei anderen Größen halt andere "nicht vorhanden"-Bilder anzeigen, wenn das überhaupt vorgesehen ist.
Dann müsste man das richtige Bild testen, welche Größe es hat. Und wenn ich das mach, dann weiß ich ja auch, ob das Bild existiert.
 
Und wenn du ein "nicht vorhanden"-Bild in den Hintergrund legst und der Banner das Bild "überschreibt"?
Die Banner haben ja immer die selbe Größe, also möglich wäre es. Mal schauen wie ich es effizient schaffe. So würde ja jedesmal mein banner zuerste geladen und ich verschenke Traffic :think:.

"jvjHzM7gnaLwFwByO9Xwz6S5yakyKxg" beschreibt den Banner ja nicht wirklich aussagekräftig, oder? :roll:

Du könntest evtl. bei deinem PHP-Ansatz etwas optimieren:
Merk dir halt, welche Banner-Grafiken nicht verfügbar sind, dann musst du nicht bei jedem Aufruf bei der Quelle nachfragen. Wenn ein Banner mal einmal nicht funktioniert, wird er es später wohl auch nicht mehr - so die Annahme.

Sag ich doch, aber wenn die Sponsorennnetzwerke mir keine alternativen Bildtexte geben, soll ich die alle von Hand beschreiben? Ich könnte höchstens den Standardtext reinhauen, "Werbekampagne von Sponsor XYZ" - aber die Aussagekraft bleibt gleich 0. Wobei ich mich jetzt auch mal aus dem Fenster lehne und sage, dass ein Klickbannerbereich nicht unbedingt barrierefrei sein muss.

Damit würde ich aber auch die Banner herauswerfen die nur kurzzeitig Probleme haben :think: und dann dürfte das Probleme mit dem Sponsor geben, wenn ich meine Banner über dessen Link setze.
 
...So würde ja jedesmal mein banner zuerste geladen und ich verschenke Traffic :think:...
Im Hintergrund laden!
Also auch mal background-image oder wie es auch immer aufgebaut ist nutzen.
Nicht den eigenen Banner laden und dann mit JavaScript-Spielereien überschreiben.

EDIT: Ach so und die Größe sollte natürlich fest angegeben werden, so dass keine 1x1 Banner (Extrembeispiel) entstehen, aber kann sein, dass das schon gemacht wird.