Attribute setzten mi dhtml.js ?
Frank
- dhtml
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;
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
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
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
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