name Attribut für img valide?
Fritz
- html
0 Jens Holzkämper0 Fritz
0 Ingo Turski0 Fritz
Hallo,
ist das name Attribut für img valide oder nicht?
http://de.selfhtml.org/html/referenz/attribute.htm#img meint, daß zulässig u.a. für strict.
bei folgendem code moniert aber der Validator das name attribut in einem XHTML1.0 strict document:
<a href = "bild1.gif" onclick="document.anzeige.src = this.href;return false;" onkeypress=""><img name="anzeige" id="anzeige" src="bild.gif" alt="" width="140" height="113" /></a>
Das name braucht nur? der IE, der onclick-Bildwechsel funktioniert sonst nicht. (im Feuerfuchs geht's natürlich ohne das name attribut)
Zu sehen unter http://webdesign.weisshart.de/js.php#bildwechsel
Kann mir jemand einen Tipp dazu geben? Hab ich den onclick-Event-handler falsch geschrieben? Oder...
Gruß Fritz
Tach,
ist das name Attribut für img valide oder nicht?
in HTML ja, in XHTML 1.0-strict nein, siehe auch:Differences with HTML 4.
mfg
Woodfighter
Hallo,
in HTML ja, in XHTML 1.0-strict nein, siehe auch:Differences with HTML 4.
Dann ist http://de.selfhtml.org/html/referenz/attribute.htm#img falsch?
und die Behandlung des onclick Event handlers durch den IE auch?
oder ist mein code falsch?
Gruß Fritz
Tach,
Dann ist http://de.selfhtml.org/html/referenz/attribute.htm#img falsch?
jein, für HTML nein, für XHTML ja. Ich habe es im [http://bugs.selfhtml.org/bug.php?op=show&bugid=824&pos=0@title=Bugtracker] eingetragen, da ich es noch nicht finden konnt.
und die Behandlung des onclick Event handlers durch den IE auch?
Du solltest auf das Element einfach mit document.getElementById("anzeigen") zugreifen, dann funktioniert es in allen modernenen Browsern.
oder ist mein code falsch?
Ja, da du den Doctype mit Strict benutzt, würdest du Transitional nutzen, wäre er richtig.
mfg
Woodfighter
Hallo,
Du solltest auf das Element einfach mit document.getElementById("anzeigen") zugreifen, dann funktioniert es in allen modernenen Browsern.
Ja, aber nicht im IE (ich weiß, ist kein moderner Browser, aber leider relativ weit verbreitet ;-)
Hab den Code folgendermaßen geändert:
von:
<a href = "bild2.gif" onclick="document.anzeige.src = this.href;return false;" onkeypress=""><img name="anzeige" id="anzeige" src="bild.gif" alt="" width="140" height="113" /></a>
nach:
<a href = "bild2.gif" onclick="document.getElementById("anzeige").src = this.href;return false;" onkeypress=""><img name="anzeige" id="anzeige" src="bild.gif" alt="" width="140" height="113" /></a>
Die ursprüngliche Version funktioniert in Browsern, sowie im IE, wenn das name Attribut drin ist, die neue Version _nur_ in Browsern, _mit_ und _ohne_ das name Attribut.
Gruß Fritz
Tach,
Ja, aber nicht im IE
doch, das geht auch im IE ab Version 5.
(ich weiß, ist kein moderner Browser, aber leider relativ weit verbreitet ;-)
So moderne Broser meinte ich gar nicht, es betrifft alle Browser mit DOM-Unterstützung.
<a href = "bild2.gif" onclick="document.getElementById("anzeige").src = this.href;return false;" onkeypress=""><img name="anzeige" id="anzeige" src="bild.gif" alt="" width="140" height="113" /></a>
Das sollte eigentlich funktionieren.
mfg
Woodfighter
Hallo Woodfighter,
<a href = "bild2.gif" onclick="document.getElementById("anzeige").src = this.href;return false;" onkeypress=""><img name="anzeige" id="anzeige" src="bild.gif" alt="" width="140" height="113" /></a>
Das sollte eigentlich funktionieren.
Tut's leider nicht. Das mit href angegebene Bild wird in einem neuen Fenster geöffnet. Sollte aber ein onklick-Bildwechsel sein.
Ich hab mal beide Versionen nebeneinander online gestellt. "Meine" Version rechts, die "korrekte" document.getElementById Version links:
http://webdesign.weisshart.de/js.php#bildwechsel
Gruß Fritz
Hi,
<a href = "bild2.gif" onclick="document.getElementById("anzeige").src = this.href;return false;" onkeypress=""><img name="anzeige" id="anzeige" src="bild.gif" alt="" width="140" height="113" /></a>
document.getElementById(
ist alles, was im onclick-Attribut steht. Benutze innen ' statt ".
cu,
Andreas
Hallo Andreas,Jens und Ingo,
document.getElementById(
ist alles, was im onclick-Attribut steht. Benutze innen ' statt ".
verd.., wie konnte ich da drüber stolpern. Dafür gibt's doch Werkzeuge. Aber manchmal kommt man einfach alleine vor lauter Tomaten auf die Augen nicht weiter ;-)
Danke schön an alle.
Gruß Fritz
Hallo,
Du solltest auf das Element einfach mit document.getElementById("anzeigen") zugreifen, dann funktioniert es in allen modernenen Browsern.
Warum? Warum getElementById bemühen?
Warum nicht mit name-Attribut und dann über document.images.Bildname? Das kann *jeder* Browser, der nur einen Hauch JavaScript versteht.
Das ist konform zu W3C DOM HTML, ist abwärts- und aufwärtskompatibel und jeder Browser sollte es schnallen. Ein id-Attribut kann man bei Belieben auch setzen, wäre auch stimmig im DOM-HTML-Kontext.
Mathias
Hi,
Warum? Warum getElementById bemühen?
Warum nicht mit name-Attribut und dann über document.images.Bildname?
Du hast die Ausgangsfrage gelesen?
Es ging ja darum, daß das name-Attribut im benutzten Doctype nicht zugelassen ist ;-)
Das ist konform zu W3C DOM HTML,
aber nicht zu XHTML, da dann das img-Element kein name-Attribut mehr hat.
cu,
Andreas
Hallo,
Warum nicht mit name-Attribut und dann über document.images.Bildname?
Du hast die Ausgangsfrage gelesen?
Ich hatte es dem Leser überlassen, sich die Frage »Warum XHTML 1.0 Strict, wenn man sich über Kompatibilität von JavaScripten Gedanken macht?« hinzuzudenken.
Mathias
Hi,
<a href = "bild1.gif" onclick="document.anzeige.src = this.href;return false;" onkeypress=""><img name="anzeige" id="anzeige" src="bild.gif" alt="" width="140" height="113" /></a>
Das name braucht nur? der IE, der onclick-Bildwechsel funktioniert sonst nicht. (im Feuerfuchs geht's natürlich ohne das name attribut)
Du brauchst das name-Attribut nicht, sondern mußt die ID nur korrekt ansprechen über document.getElementById. Aber hierfür brauchst Du die ID eigentlich auch nicht, da das Bild auch über this.firstChild angesprochen werden kann.
freundliche Grüße
Ingo
Hallo Ingo,
Du brauchst das name-Attribut nicht, sondern mußt die ID nur korrekt ansprechen über document.getElementById.
->https://forum.selfhtml.org/?t=107918&m=671114
Aber hierfür brauchst Du die ID eigentlich auch nicht, da das Bild auch über this.firstChild angesprochen werden kann.
Hm, dazu reichen meine Javascript Kenntnisse nicht aus. Könntest Du mir bitte einen etwas längeren Codeschnipsel zum Verständnis zukommen lassen.
Gruß Fritz
Tach,
Aber hierfür brauchst Du die ID eigentlich auch nicht, da das Bild auch über this.firstChild angesprochen werden kann.
Hm, dazu reichen meine Javascript Kenntnisse nicht aus. Könntest Du mir bitte einen etwas längeren Codeschnipsel zum Verständnis zukommen lassen.
er meint this.firstChild.src=this.href
mfg
Woodfighter
Hallo,
er meint this.firstChild.src=this.href
Noch eleganter. Danke
Gruß Fritz
Hi,
er meint this.firstChild.src=this.href
Noch eleganter. Danke
Wobei man bedenken sollte, daß firstChild JS 1.5 ist und, sofern es nicht umklammert wird, auf Browser mit JS vor 1.5 ggf. zum Abbruch der JS-Verarbeitung führt.
Gruß, Cybaer