Was mache ich falsch?
Rob
- javascript
Nabend zusammen,
um den folgenden Quelltext geht es:
(im head:)
<script type="text/javascript" language="JavaScript">
<!--
Normal1 = new Image();
Normal1.src = "gfx/button1_o.png";
Highlight1 = new Image();
Highlight1.src = "gfx/button1_h.png";
function Bildwechsel(Bildname,Bildobjekt) {
window.document.Bildname.src = Bildobjekt.src;
}
//-->
</script>
(im body:)
<a href="index.php" target="_self" onMouseOver="Bildwechsel('button1',Highlight1)" onMouseOut="Bildwechsel('button1',Normal1)">
<img src="gfx/button1_o.png" border=0 name="button1"></a>
Ich bekomme immer die Fehlermeldung:
window.document.Bildname ist Null oder kein Objekt.
Was hat das zu bedeuten?
mfg Robert
Hi,
<img src="gfx/button1_o.png" border=0 name="button1"></a>
So nebenbei: border=0 <-- Anführungszeichen fehlen bei 0
E7
So nebenbei: border=0 <-- Anführungszeichen fehlen bei 0
Gut aufgepasst! Da liegt aber nicht das Problem!!!
mfg Rob
Hallo,
<img src="gfx/button1_o.png" border=0 name="button1"></a>
So nebenbei: border=0 <-- Anführungszeichen fehlen bei 0
nein, sie fehlen nicht. Laut http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2 dürfen die Anführungszeichen weggelassen werden, wenn der Wert des Attributes nur die Zeichen a-z, A-Z, 0-9 sowie -_.: enthält.
Grüße aus Nürnberg
Tobias
Hallo,
Laut http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2
HTML 4. Und was ist mit XHMTL?
in xhtml würden sie fehlen - allerdings würden dann auch ein </img> bzw. ein '/' vor dem schließenden '>' fehlen ... Ich glaube aber nicht dass Rob xhtml schreibt :-)
Grüße aus Nürnberg
Tobias
Hallo Robert,
window.document.Bildname.src = Bildobjekt.src;
<img src="gfx/button1_o.png" border=0 name="button1"></a>
dein Bild heisst "button1", nicht "Bildname".
Grüße
Andreas
Hallo Robert,
window.document.Bildname.src = Bildobjekt.src;
<img src="gfx/button1_o.png" border=0 name="button1"></a>
dein Bild heisst "button1", nicht "Bildname".
Grüße
Andreas
Das ist mir klar. Aber steckt in diesem Fall nicht 'button1' in der Variable 'Bildname'??? Ich dachte, dass sollte so klappen.
mfg Rob
Hi,
Das ist mir klar. Aber steckt in diesem Fall nicht 'button1' in der Variable 'Bildname'??? Ich dachte, dass sollte so klappen.
Ganz einfach: Wenn es nicht klappt, dann hast Du wohl falsch gedacht! =;-)
document.images[Bildname].src wäre dein Freund gewesen ...
Gruß, Cybaer
hi,
du brauchst den Wert aus Bildname, nicht das <img name=Bildname>
versuche mal:
window.document.Bildname.src = Bildobjekt.src;
window.document[Bildname].src = Bildobjekt.src;
mfg Hint
hi,
du brauchst den Wert aus Bildname, nicht das <img name=Bildname>
versuche mal:window.document.Bildname.src = Bildobjekt.src;
window.document[Bildname].src = Bildobjekt.src;
mfg Hint
Das hat es leider nicht gebracht.
Fehler:
window.document[...] ist Null oder kein Objekt.
Hallo, Hint!
versuche mal:
window.document[Bildname].src = Bildobjekt.src;
mit "versuche mal" haben sich schon leute in die luft gesprengt, also sollte man besser wissen, was man tut.
Hallo, Rob!
"window" hat mit deiner gewünschten aktion garnichts zu tun.
du willst ein element von "document" beeinflussen, also:
document.
und auf das element kannst du zugreifen, wenn du aus dem namen eine dateiweit eindeutige id machst über:
document.getElementById(Bildname).
Zusammenfassung:
document.getElementById(Bildname).src = Bildobjekt.src;
übrigens lässt sich das ganze viel eleganter per css lösen. infos dazu über die suche.
freundl. Grüsse aus Berlin, Raik
Hallo,
mit "versuche mal" haben sich schon leute in die luft gesprengt, also sollte man besser wissen, was man tut.
Mit Javascript? Oder ging es hier um Sprengstoff?
"window" hat mit deiner gewünschten aktion garnichts zu tun.
du willst ein element von "document" beeinflussen, also:document.
http://selfhtml.teamone.de/javascript/objekte/document.htm. Siehe die erste Erläuterung. Ok?
Deine weiteren Ausführungen mögen ja richtig sein, doch erzähle das mal meinem NS4.7.
function Bildwechsel(Bildname,Bildobjekt) { //Aufruf: Bildwechsel('button1',Highlight1)
window.document[Bildname].src = Bildobjekt.src;
}
Wenn der erste Operand des Operators [] eine Referenz auf ein Objekt ist, sollte der zweite Operand ein Ausdruck sein, der als String ausgewertet wird.
Trifft doch hier zu.(Bildname='button1')
Damit habe ich den Quelltext des Ausgangspostings fehlerfrei auf mehreren Browsern (4) ausführen können.
Was Rob uns an Quelltext vorenthalten hat, der zu seinem Fehler führt kann ich nur raten.
Ich verstehe das als gültigen Javascript-Code. Wenn du da andere Informationen hast, bitte ich um einen Hinweis dazu, damit ich mich updaten kann.
Einen netten Tag noch
Hint
Hi,
window.document[Bildname].src = Bildobjekt.src;
Das DOCUMENT hat nicht den Bildnamen, IMAGES tragen ihn! ;-)
Gruß, Cybaer
Hallo Cybaer,
Das DOCUMENT hat nicht den Bildnamen, IMAGES tragen ihn! ;-)
Ist das zwingend? Wenn ja warum?
document[bildname].src
(Mit und ohne window. davor):)
reicht bei meinen Versuchen solange der Bildname eindeutig im document bleibt und nicht ein anderes Objekt ebenfalls den Namen trägt.
mfg
Hint
Hi,
Ist das zwingend?
Vermutlich(!) nicht, aber deutlich sauberer.
reicht bei meinen Versuchen solange der Bildname eindeutig im document bleibt und nicht ein anderes Objekt ebenfalls den Namen trägt.
Was passieren könnte (aber der Autor sollte es ja wissen - und nicht vergessen ;-))
Auf der einen Seite: images ist für die Bilder vorgesehen, da darf man das auch schreiben.
Auf der anderen Seite: Solange JS eine logische Eindeutigkeit feststellen kann, wird es auch ohne klappen (das ist auch *explizit* gewollt - deswegen reicht ja z.B. auch document.irgendwas statt window.document.irgendwas ;-}) ...
Gruß, Cybaer
Hallo Cybaer,
Danke.
nice day
Hint
Hi,
mit "versuche mal" haben sich schon leute in die luft gesprengt, also sollte man besser wissen, was man tut.
So so, denn ...
Zusammenfassung:
document.getElementById(Bildname).src = Bildobjekt.src;
... mit Verlaub ist dein Vorschlag ziemlich suboptimal. :-o
Es gibt IMHO keinen Grund, eine funktionierende, bewährte JS-1.1-Syntax (also mit entsprechender Browserunterstützung) durch eine JS-1.5-Syntax (mit geringerer Browserunterstützung) zu ersetzen.
Jedenfalls nicht so lange NAME noch ein gültiges Attribut für IMG ist ... :-)
Gruß, Cybaer
document.getElementById(Bildname).src = Bildobjekt.src;
Das war die Lösung des Problems. Ich danke Dir!!!
mfg Rob
Hi,
Das war die Lösung des Problems. Ich danke Dir!!!
Glaube ihm nicht, Du hast Dir soeben neue Probleme eingefangen ... 8-)
Gruß, Cybaer
um den folgenden Quelltext geht es:
Es gibt 1000 bessere und den besten findest du hier http://home.arcor.de/struebig/js/mouse_over/index.html ;-)
Du benötigst in deinem Quellcode keine einzige Zeile JS und kannst sogar noch mehr als nur mouseover einbauen.
Aber noch sinnvoller ist es sowas mit CSS zu gestalten.
Struppi.