PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ZweiFramesBack



Tschackmack
02-12-2005, 16:42
Hallo!
(die latex-gurus hab ich nun genug geärgert, jetzt bastle ich eine HP --> fürchtet euch ;-)

also: ich hab eine HP mit 3 frames (menue, navigation, text)
im text ist logischerweise der text
im menue das menue mit den funktionen bildwechsel und ZweiFrames (ändert sein eigenes frame und den text) was auch wunderbar funktioniert

was aber nicht geht ist die navigation mit ZweiFramesBack/Forward da springt er mir immer um 2 "seiten" weiter. (anzusehen unter www.torsen.at, ist noch die alte version mit 2 frames aber mit demselben ergebnis).

ich hab das ganze (mangels besseren wissens) so programmiert wie selfHTML buch und online version das vorschlagen (unten noch mal der code ohne die opera-klausel... in opera funktioniert das ganze einwandfrei aber im explorer krieg ichs nicht hin)

:confused:

function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
}

function ZweiFramesBack(F1,F2){
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.history.back();
Frame2.history.back();
}

Bitte um hilfe, mein armes gehirn kocht schon (hab soviel ausprobiert - ohne erfolg)

tschackmack

Turbohummel
02-12-2005, 17:58
Zu Anfang erstmal ein Link:
http://www.subotnik.net/html/frames.html
Ich stelle diesen rein zu Informationszwecken und völig Wertungsfrei hinein.

Zum eigentlichen Problem:
Frame1.history.back();
Frame2.history.back();
wird zwar von Opera und Gecko unterstützt, nicht jedoch vom IE. Das liegt daran:
du gehst einmal in der history um eines zurück. Damit wird die Seite IE-intern komplett neu aufgebaut. Also verwirft der IE auch alle Java-Script Aktionen, die noch nicht ausgeführt wurden, und damit wird die 2. Codezeile entweder gar nicht ausgeführt oder es kommt zu dem von dir benannten Phänomen, und zwar dass er history.back() 2x am gleichen Objekt aufruft. Interessanterweise treten beide Ereignisse bei mir völlig zufällig ein.

Lösung wäre, indem du in der neuen Seite von Frame1 ein Javascript hast, dass den history.back() des Frames 2 aufruft.

Tschackmack
03-12-2005, 00:13
mhhh, aber sollte das nicht mit

if (!window.opera) window.setTimeout("Frame2.history.forward()",10)

zu lösen sein? funktioniert aber nicht, bringt exakt dasselbe ergebnis....

damit wird die 2. Codezeile entweder gar nicht ausgeführt oder es kommt zu dem von dir benannten Phänomen, und zwar dass er history.back() 2x am gleichen Objekt aufruft.

ich kenn das von dir beschriebene phänomen, ergeht mir ähnlich; ich habe aber den eindruck, er versucht immer 2 frames zu ändern, wenn einer davon jedoch zufällig gleich bleibt ändert er einfach den 2. noch mal, oder liege ich da komplett falsch.... weiß nicht, du meinst also der IE unterstützt die back() methode gar nicht... mh interessant das hätte ich mir nicht gedacht...

deine lösung wäre also in einfachen worten ausgedrückt (damit ich es auch verstehe) ich mache zuerst nur frame1.back() und dort sagt steht dann frame2.back() aber wie programmiert man das? nur so in etwa???

lieben dank für deine antwort!!! tschackmack