Strangest: Merkwürdigster Fehler seit Beginn meiner Lehrzeit

Beitrag lesen

Hallo und vielen Dank schonmal.

Habe jetzt alles serverseitige weggelassen und es geht immer noch nicht.

} else window.setTimeout( 'movebox('+irgendeineboxid+')', 10 );

wie lautet effektiv der String, den Du hier implizit mit eval() ausführen lässt?

Ich weiß nicht, wie ich eval hier benutzen soll.
Versucht unter anderem:
 window.setTimeout(eval("movebox("+boxid+")"), 10);

Tipp: Verwende window.setTimeout *nie* mit Strings. Erzeuge immer Funktionen, egal ob benannte, anonyme, Closures und was es noch so alles gibt.

movebox() ist doch eine Funktion?!

Und <http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout@title=im Handbuch steht, dass ich Parameter verwenden> darf. Mit einem Zusatz den ich btw nicht verstehe. "Berücksichtigen Sie dabei, dass lokale Variable dann nicht mehr zur Verfügung stehen. Eine Übergabe der Werte mittels Zeichenkettenverknüpfung ist jedoch jederzeit möglich." Darf ich lokale Variablen da rein tun?

Ich habe die Id jetzt erstmal auf "box" gesetzt.
    <a href="javascript:movebox('<!--mid-->')">Close</a>

Durch das Verwenden einer URL hast Du den Kontext auf das window gesetzt. Du willst hier gar nichts verlinken, also verwende auch einfach keinen Link - jedes beliebige Element kann einen onclick-Handler aufnehmen.

Ok, aber a) verwenden tausend Beispiele im Manual das so und b) ist dann das Layout anders... :(

Übrigens hat Deine Box nicht id="&lt;!--mid--&gt;". Das ist auch gut so, die ID wäre nicht gültig.

Ich weiß. Da ich (weil dies nicht funktionierte) erstmal id="box" eintrug (ebenso bei getElementById("box"). Später kommt dann allerdings ins Template wieder id="<!--mid-->". Ob das Template gültig ist, _bevor_ es durch den Parser geht, ist nicht wichtig.

Serverseitige Techniken spielen für clientseitige Probleme keine Rolle. Sie zu betrachten, kann das Problem bis zur Unkenntlichkeit verstümmeln. Eliminiere *IMMER* bei *JEDEM* clientseitigen Problem zunächst *ALLES* Serverseitige.

Getan. Vielleicht kannst Du Dir ja nochmal das online-Beispiel ansehen. Wenn Du Firebug verwendest, siehst Du in der Konsole den Wert für die ID, und den Fehler.