Zwei Frames II - Angriff der drop-down-listen
Zwerg Nase
- javascript
hallo pfreunde,
mein javascript-interpreter und ich haben unterschiedliche vorstellungen von abarbeiten eines scripts.
ich hab mehrere frames (navigation, logo, text), wie das so vorkommt. und habe weiter unten im forum schon gute hilfe von ronny bekommen, um das "zwei-frames-gleichzeitig-ändern"-problem besser in den griff zu kriegen http://forum.de.selfhtml.org/?m=70531&t=12743. das funktioniert auch soweit bis noch zusätzlich drop-down-verweislisten ins spiel kommen...
also ich möchte, dass zuerst die datei im logoframe durch eine neue (logo5.htm) ersetzt und dass dann in der dortigen drop-down-liste jeweils der zugehörige listeneintrag zu den dateien im textframe (text5-1.htm bis text5-8.htm) einblendet wird. deshalb habe ich die befehle so angeordet:
parent.logo.location.replace('logo5.htm');
parent.logo.document.forms[0].Bereich.options[1].selected=true;
wenn ich nun zwischen den dateien text5-1.htm bis text5-8.htm hin- und herwechsle, sehe ich kurz den jeweiligen listeneintrag aufblitzen, woraufhin die liste auf den obersten eintrag springt, wie das ja beim laden von logo5.htm zu erwarten wäre. es soll aber andersrum sein: erst laden, dann liste ändern, nicht erst liste ändern, dann laden.
die befehle sind grundsätzlich in ordnung, einzeln funktionieren sie, aber in kombination...
die kombination wäre aber schon notwendig für die navigation mit den browsertasten.
ich werd mich bemühen, das mal zum anschauen ins netz zu stellen, aber das dauert noch n bissl.
danke für eure hilfe,
der zwerch
hallo pfreunde,
Moin Moin !
mein javascript-interpreter und ich haben unterschiedliche vorstellungen von abarbeiten eines scripts.
Nein, nur Timing-Probleme, wie's scheint. [weiterlesen ...]
ich hab mehrere frames (navigation, logo, text), wie das so vorkommt. und habe weiter unten im forum schon gute hilfe von ronny bekommen, um das "zwei-frames-gleichzeitig-ändern"-problem besser in den griff zu kriegen http://forum.de.selfhtml.org/?m=70531&t=12743. das funktioniert auch soweit bis noch zusätzlich drop-down-verweislisten ins spiel kommen...
also ich möchte, dass zuerst die datei im logoframe durch eine neue (logo5.htm) ersetzt und dass dann in der dortigen drop-down-liste jeweils der zugehörige listeneintrag zu den dateien im textframe (text5-1.htm bis text5-8.htm) einblendet wird. deshalb habe ich die befehle so angeordet:
parent.logo.location.replace('logo5.htm');
parent.logo.document.forms[0].Bereich.options[1].selected=true;
wenn ich nun zwischen den dateien text5-1.htm bis text5-8.htm hin- und herwechsle, sehe ich kurz den jeweiligen listeneintrag aufblitzen, woraufhin die liste auf den obersten eintrag springt, wie das ja beim laden von logo5.htm zu erwarten wäre. es soll aber andersrum sein: erst laden, dann liste ändern, nicht erst liste ändern, dann laden.
die befehle sind grundsätzlich in ordnung, einzeln funktionieren sie, aber in kombination...
Die erste Zeile veranlaßt den Browser, die Date logo5.htm zu laden, das geschieht -- aus Sicht des Scripts -- im Hintergrund.
Die zweite Zeile greift dann zu *irgendeinem* Zeitpunkt auf das Fenster zu, in das logo5.htm gerade geladen wird -- nicht notwendigerweise erst dann, wenn die Seite vollständig geladen ist.
Lösung 1:
logo5.htm macht per <body onload="..."> einen "Rückruf" (Callback), sprich: Ruft Javascript-Code im Parent oder in der Navigation auf, der dann wiederum die Drop-Down-Liste aktualisiert.
(Ähnlichen Code findest Du unter http://www.foken.de/alexander/)
Lösung 2:
logo5.htm mit einem URL-Parameter aufrufen, dann location.search auswerten und innerhalb von logo5.htm (wiederum mit <body onload="...">) die Drop-Down-Liste aktualisieren.
Keine Lösung:
Verzögerung zwischen den Zeilen einbauen. Es gibt immer einen Surfer, bei dem auch die längste Verzögerung nicht ausreicht. (Und niemals nie nie nie for für Delay-Loops benutzen!)
Alexander