Fritz: name Attribut für img valide?

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

--
ie:( br:> va:} ls:[ fo:| ss:{ de:] js:| ch:? zu:)
[
link:http://webdesign.weisshart.de]
  1. 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

    1. 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

      --
      ie:( br:> va:} ls:[ fo:| ss:{ de:] js:| ch:? zu:)
      http://webdesign.weisshart.de
      1. 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

        1. 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

          --
          ie:( br:> va:} ls:[ fo:| ss:{ de:] js:| ch:? zu:)
          http://webdesign.weisshart.de
          1. 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

            1. 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

              --
              ie:( br:> va:} ls:[ fo:| ss:{ de:] js:| ch:? zu:)
              http://webdesign.weisshart.de
          2. 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

            --
            Warum nennt sich Andreas hier MudGuard?
            Schreinerei Waechter
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. 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

              --
              ie:( br:> va:} ls:[ fo:| ss:{ de:] js:| ch:? zu:)
              http://webdesign.weisshart.de
        2. 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

          1. 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

            --
            Warum nennt sich Andreas hier MudGuard?
            Schreinerei Waechter
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. 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

  2. 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

    1. 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

      --
      ie:( br:> va:} ls:[ fo:| ss:{ de:] js:| ch:? zu:)
      http://webdesign.weisshart.de
      1. 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

        1. Hallo,

          er meint this.firstChild.src=this.href

          Noch eleganter. Danke
          Gruß Fritz

          --
          ie:( br:> va:} ls:[ fo:| ss:{ de:] js:| ch:? zu:)
          http://webdesign.weisshart.de
          1. 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

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!