Frank: Attribute setzten mi dhtml.js ?

Hallo,

ich glaube, ich habe das DOM-Modell und die Umsetzung in Stefans "dhtml.js" noch nicht verstanden,denn ich möchte für meine Diashow das Attribut "src" eines Image Objektes ändern und versuche dazu folgendes:

Ich lese das Element "src", was auch funktioniert:
content=getAttr("id",this.name,null,"src");

this.name ist ein String der id des DIV-Bereiches.

jetzt will ich es ändern und probiere etwa:
setCont("id",this.name.src,null,this.image.src);

Dass kann ja wohl nicht klappen, da ich mit der Methode nur den Inhalt von "this.name" ändern könnte, nicht aber das Attribut "src".

Wenn es aber ein getAttr() gibt, wie kann ich ein "setAttr()"
realisieren ????

Der Original Code (funktionierend) lautete für das Setzen im IE:

document.all[this.name].src=this.image.src;

  1. Hallo Frank,

    ehrlich gesagt verstehe ich Deine Abfrage schon nicht so richtig.

    Ich lese das Element "src", was auch funktioniert:
    content=getAttr("id",this.name,null,"src");

    Hier widersprechen sich laut Stefan "id" und "name".
    Erläuterung der dhtml.js:

    p1 ist die Art und Weise, wie auf ein Element zugegriffen werden soll. Es gibt vier erlaubte Werte für diesen Parameter: "id", "name", "tagname" und "index". Übergeben Sie "id", wenn Sie auf ein Element zugreifen wollen, das ein id-Attribut hat, z.B. <div id="Bereich">. Übergeben Sie "name", wenn das Element, auf das Sie zugreifen wollen, kein id-Attribut, aber dafür ein name-Attribut hat, z.B. <a name="Anker">. Übergeben Sie "tagname", wenn das Element, auf das Sie zugreifen wollen, weder ein id- noch ein name-Attribut hat. Übergeben Sie "index" nur dann, wenn es sich um Netscape-Layer handelt, die über das layers-Objekt mit Hilfe von Indexnummern angesprochen werden sollen.

    this.name ist ein String der id des DIV-Bereiches.

    this.name muss der Name des Bildes sein, nicht eines DIV-Bereiches.

    jetzt will ich es ändern und probiere etwa:
    setCont("id",this.name.src,null,this.image.src);
    Dass kann ja wohl nicht klappen, da ich mit der Methode nur den Inhalt von "this.name" ändern könnte, nicht aber das Attribut "src".

    Stimmt .... und welchen Wert hat Deiner Meinung nach "this.image.src"?

    Ich empfehle Dir, mal das hier zu lesen:

    http://selfhtml.teamone.de/javascript/objekte/images.htm

    Gruß
    Sue

    1. Hallo Sue,

      anscheinend war meine Erläuterung zu schlecht, die Beschreibung
      zu dhtml.js habe ich jedenfalls mehrfach gelesen und auch die Hinweise zum Image Objekt, ich habe es aber anscheinend
      nicht VERSTANDEN, sonst hätte ich nicht gefragt, in sofern
      hat mir Dein Tipp, das ganze noch mal zu lesen, leider nicht geholfen.

      Das Problem ist, wie kann ich dynamisch den Inhalt des "src" Attributes des Image Objektes mit den DHTML-Routinen ändern ?
      Ich kann es bisher nur auslesen, mit

      getAttr("id",idname,null,"src");

      Wie kann ich es jetzt für eine Diashow auf einen anderen String setzen, der auf das nächste Bild verweist ?

      Intuitiv hätte ich auf eine Routine der Form

      setAttr("id",idname,null,"src",neuer Inhalt) oder ähnlich gehofft,
      die es aber anscheinend nicht gibt.

      Bin für jeden Tipp dankbar,

      Gruß,

      Frank

      1. Hallo Frank,

        ehrlich gesagt, verstehe ich nicht, weshalb Du das Image-Objekt auf diese umständliche Art und Weise ansprechen willst, wenn es doch in allen DOM-fähigen Browsern viel einfacher geht....?

        Wenn Du den SRC-Wert von Image-Objekten ändern willst, kannst Du das auf folgende Weise tun:

        <head>
        function anderesBild()
        {
        neuesBild = new Image();
        neuesBild.src = "kaut.jpg";
        altesBild = document.getElementById('Bild_Id');
        altesBild.src = neuesBild.src;
        }
        </head>

        <body>
        <-- Dein Funktionsaufruf -->
        </body>

        Gruß
        Sue

        1. Hallo Sue,

          Danke für den Tipp, ich habe die jetzige Page mit DHTML für IE gemacht, wollte aber auch die alten Browser nicht aussperren
          und deshalb meine Routinen jetzt so umstricken, mit
          Stefans  dhrml.js  , dass man die Seiten auch
          mit IE 4 und NS 4 sehen kann.

          Bei denen beisse ich mit getElementById() jedoch auf Granit ?

          Auch kann ich die Bilder nicht vorladen, weil es letztlich ca.
          80 Stück werden und so lange niemand warten würde. Ich will immer nur eins anzeigen, dann in der Zwischenzeit das nächste Laden lassen etc.

          Gruß,

          Frank

          Hallo Frank,

          ehrlich gesagt, verstehe ich nicht, weshalb Du das Image-Objekt auf diese umständliche Art und Weise ansprechen willst, wenn es doch in allen DOM-fähigen Browsern viel einfacher geht....?

          Wenn Du den SRC-Wert von Image-Objekten ändern willst, kannst Du das auf folgende Weise tun:

          <head>
          function anderesBild()
          {
          neuesBild = new Image();
          neuesBild.src = "kaut.jpg";
          altesBild = document.getElementById('Bild_Id');
          altesBild.src = neuesBild.src;
          }
          </head>

          <body>
          <-- Dein Funktionsaufruf -->
          </body>

          Gruß
          Sue