Moin!
var ef = "pf_gre2_zu_" + "3_no"; (in PHP ergibt dies einen Sinn!!)
window.document.images[0].src = window['ef'].srcWas willst du mit ef machen, und was hat die Zugriffsart "Bildobjekt" damit zu tun?
wollte einfach in der Programmlogik den string praktisch wie man es schreiben würde in den befehl schreiben, in der hoffnung, das JS darüber ließt und das richtig interpretiert. ..,dass JS ef einfach durch den string ersetzen würde.
Du meinst, du wolltest auf das Bildobjekt pf_gre2_zu_3_no zugreifen (z.B. auf .src davon)?
Dann wäre window[ef].src wohl richtig gewesen.
Mit ['ef'] meinst du den String 'ef', folglich mit window['ef'] die Variable namens ef.
Mit [ef] meinst du die Variable ef, mit window[ef] meinst du die Variable, deren Namen in der Variablen ef gespeichert ist.
aber mir ist das mit den JS_variablen immer noch nicht ganz klar.
window.setTimeout("BiWeNav(BiWech)",200);
window.setTimeout definiert einen Javascript-Befehl, der (nachdem die Funktion selbst schon lange abgeschlossen und alle lokalen Variablen vergessen sind!) nach gewisser Zeit aufgerufen wird.
Stell dir einfach vor, im Hauptprogramm (also außerhalb jeder Funktion) wird der Befehl
BiWeNav(BiWech)
aufgerufen.
Gibt es da die Variable BiWech schon oder noch? Und zwar in der globalen Ebene, nicht irgendwo innerhalb einer Funktion!
Wenn nein, dann ist das der Grund für dein Problem.
window.setTimeout("BiWeNav(window[BiWech])",200);
Wenn es die Variable in der ersten Schreibweise nicht gibt (wichtig: global definiert), dann wird sie auch in der zweiten Schreibweise nicht existieren.
wenn ich jetzt schreibe:
window.setTimeout("BiWeNav(pf_re)",200);
kommt die fehlermeldung das die variable in der aufgerufenen funktion keine eigenschaften hätte-->also gibt es vielleicht probleme mit der Set TimeOut-funktion.
setTimeout tut alles so, wie es soll. Das Problem ist, dass du dir klar werden mußt über den Unterschied zwischen Strings, Variablennamen und Objekten.
Und natürlich kommt es auch drauf an, was die Funktion BiWeNav so macht.
(Möchte aber anstatt pf_re eine flexible variable einfügen, die abhängig von dem On MouseOver="BiWeNav(je nach schaltfläche)" ist.)
Ich habe so das Gefühl, dass du da ein ziemlich ausuferndes Gebilde strickst, welches sich wesentlich leichter und eleganter realisieren ließe, wenn du beispielsweise Arrays verwenden würdest. Man kan sich das Leben ziemlich erleichtern und die Tipparbeit verkürzen, wenn man sich vernünftige Strukturen überlegt, die den Zugriff erleichtern.
Ebenso arbeitest du ja immer noch mit indexbasiertem Bildzugriff (images[0]), und nicht mit Bildnamen (images['name']) - das wäre auch eine deutliche Verbesserung, wenn man die Bilder nicht immer abzählen müßte.
komischerweise funktioniert ja:
BeWeNav(BiWech); ???
Innerhalb deiner Funktion existiert die Variable BiWech offenbar, außerhalb aber nicht.
wo könnte ich das denn alles generell mal nachlesen?
Gute Frage - hier im Forum vielleicht. :)
- Sven Rautenberg
My sssignature, my preciousssss!