XHTML und onerror
Jens
- xml
0 Alexander0 Jens
0 Jens Holzkämper0 Thomas J.S.0 Jens0 Thomas Meinike0 Jens
Moin Moin,
ichhabe ein kleines Problem mit XHTML und onerror
momentan verwende ich den Code:
<img src="$cambild" border="0" width="160" height="120" alt="" onerror="this.src='error.jpg'" />
das funktioniert soweit auch prima nur dem XHTML-Validator passt das nicht:
there is no attribute "onerror" (explain...).
ich denke mal ich habe da nur einen Denkfehler, weiß jemand die Lösung für mein Problem ?
Bye
Jens
Hallo,
versuch doch mal, die Angaben border, height und width per CSS zu machen.
Gruß
Alexander
versuch doch mal, die Angaben border, height und width per CSS zu machen.
hat leider nichts gebracht, selber fehler
<img src="$cambild" style="width:160px; height:120px; border:0" alt="" onerror="this.src='error.jpg'" />
Tach,
there is no attribute "onerror" (explain...).
das Attribut heißt onError.
mfg
Woodfighter
Tach,
there is no attribute "onerror" (explain...).
das Attribut heißt onError.
mfg
Woodfighter
und ich dachte immer in XHTML schreibt man das klein ;)
aber trotzdem mal versucht und selben Fehler bekommen
there is no attribute "onError" (explain...).
...th="160" height="120" alt="" onError="this.src='
hi,
und ich dachte immer in XHTML schreibt man das klein ;)
aber trotzdem mal versucht und selben Fehler bekommen
und was schliessen wir daraus?
onerror scheint es in XHTML nicht als erlaubtes attribut für <img> zu geben.
gruss,
wahsaga
Hallo,
there is no attribute "onerror" (explain...).
ich denke mal ich habe da nur einen Denkfehler, weiß jemand die Lösung für mein Problem ?
Der Validator sagt genau was Sache ist: es gibt kein Attribut beim <img>-Element mit dem Namen onerror (oder onError).
Du muss bei solchen Meldungen nicht von _deinem_ (X)HTML ausgehen, sondern von der Tatsache, dass der Validator _von der DTD aus gesehen_ die Fehler in deinem Code anzeigt.
Sprich: wenn der Validator sagt. "there is no attribute ...." dann heisst es nicht, dass es in deinem Code kein solches Attribut gibt, sonder, dass es in der DTD kein solches Attribut exisitiert.
Man validiert ja nicht die DTD gegen seinen eigenen Code, sonder den Code gegen der DTD. ;-)
Grüße
Thomas
Man validiert ja nicht die DTD gegen seinen eigenen Code, sonder den Code gegen der DTD. ;-)
Grüße
Thomas
Ja schon klar, allerdings kommt solch eine Meldung ja teilweise auch wenn man was falsch schreibt, glaube bei nowrap war das auch so wenn man es nicht nowrap="nowrap" schreibt.
Also müßte ich das ganze jetzt wohl irgendwie per javascript lösen, nur damit tue ich mich immer sehr schwer, dann wohl doch lieber per PHP oder hat jemand eine andere Lösung wie man das ganze lösen könnte ?
Funktionieren tut das ganze ja nur ist es ja nicht mein Bestreben mit einem Fehler im Code zu leben ;)
Hallo,
Also müßte ich das ganze jetzt wohl irgendwie per javascript lösen, nur damit tue ich mich immer sehr schwer, dann wohl doch lieber per PHP oder hat jemand eine andere Lösung wie man das ganze lösen könnte ?
Funktionieren tut das ganze ja nur ist es ja nicht mein Bestreben mit einem Fehler im Code zu leben ;)
Versuche es DOM-konform mit addEventListener() bzw. im IE mit attachEvent():
...
<body>
<img id="bild" src="bla.jpg" border="0" width="160" height="120" alt="" />
<script type="text/javascript">
<![CDATA[
var obj=document.getElementById("bild");
if(obj.addEventListener)obj.addEventListener("error",Fehler,false)
else if(obj.attachEvent)obj.attachEvent("onerror",Fehler);
function Fehler()
{
obj.setAttribute("src","error.jpg");
// oder obj.src="error.jpg";
}
]]>
</script>
</body>
...
Beachte die Schreibweisen error (Event) bzw. onerror (Event-Handler) beim Aufruf der Methoden.
MfG, Thomas
MfG, Thomas
vielen dank dadurch bin ich auf die lösung mit dem JS gekommen cdata mag der IE leider nicht, nutze es jetzt so:
<script type="text/javascript">
<!--
var obj=document.getElementById("bild");
if(obj.addEventListener)obj.addEventListener("error",Fehler,false)
else if(obj.attachEvent)obj.attachEvent("onerror",Fehler);
function Fehler(){
obj.src="error.jpg";
}
//-->
</script>
getestet mit Opera 7.21 und IE6
jetzt muß ich das nur noch auf mehere bilder umsetzen, aber das sollte ja mit verschiedenen IDs kein problem sein
einfach immer den code wiederholen mit anderen namen bei ID z.b. bild1 var obj z.b. obj1 und der funktion fehler z.b. Fehler1
oder habe ich da nen denkfehler und es geht einfacher ?
auf jeden fall danke für die hilfe