3 Frames wechsel
Joachim
- html
Hallo alle miteinander,
ich habe da ein Problem mit dem wechsen von 3 frames gleichzeitig, welches ich auch nach dem Durchsuchen der Archive nicht lösen konnte.
Mir fällt dazu nichts konstruktives mehr ein, deshalb diese Anfrage.
Als Grundlage für meinen code habe ich mich an das Beispiel von Steffan Münz aus SelfHTML angelehnt. Die Seiten werden über eine MS ASP Umgebubg aufgebaut.
Dabei ist folgendes entstanden:
1. Framedefinition (eigene Seite)
<html>
<head>
<title></title>
</head>
<frameset rows="95,*,40" border=0 frameborder=0 framespacing=0>
<frame src="frametop.asp" name="frametop" scrolling=no>
<frame src="framemiddle.asp" name="framemiddle" scrolling=no>
<frame src="framebottom.asp" name="framebottom" scrolling=no>
</frameset>
</html>
2. Function zum Frame wechseln(eigene Seite)
<HTML>
<HEAD>
<script language="JavaScript">
<!--
function ChangeF(URL0,F0,URL1,F1,URL2,F2)
{
top.frames[F0].document.location.href=URL0;
top.frames[F1].document.location.href=URL1;
top.frames[F2].document.location.href=URL2;
//parent.[F0].location.href=URL0;
//parent.[F1].location.href=URL1;
//parent.[F2].location.href=URL2;
//parent.frametop.location.href=URL0;
//parent.framemiddle.location.href=URL1;
//parent.framebottom.location.href=URL2;
//top.frametop.location.href=URL0;
//top.framemiddle.location.href=URL1;
//top.framebottom.location.href=URL2;
}
//-->
</script>
</HEAD>
3. Code der die Frame Auswechslung anstösst(eigene Seite)
<a href="javascript:ChangeF('../frametop.asp?lang=<%=intLang%>', 0,'../framemiddle.asp?lang=<%=intLang%>', 1 ,'../framebottom.asp?lang=<%=intLang%>', 2);" >ABC 1</a>
Nun zu dem Problem:
Die Seite wird erstmalig geladen, alle frames werden so dargestellt, wie es sein soll.
Clicke ich jetzt auf den link wie unter Pkt. 3 beschrieben, werden die frames frametop und framebottom doppelt geladen (das frame framemiddle nicht), wobei die variable lang jeweils korrekt übertragen wird.
Clicke ich dann nochmal auf den besagten link, bleibt es dabei, doppelte framedarstellung aber kein neuerzeugen von allen 3 frames.
Die Variable wird korrekt übertragen.
Die in der Function dargestellte remarkte Variante mit dem parent frames bewirkt, das jedesmal, wenn ich auf den link clicke, ein zusätzliches frame frametop und framebottom aufgebaut wird.
Das framemiddle wird dann nach wiederhotem clicken immer kleiner, bis es nicht mehr sichtbar ist. Die Variable wird korrekt übertragen.
Hat jemand von Euch vielleicht auch schon mal das gleiche Problem gehabt und dafür eine Lösung gefunden?
Vielen Dank auf jeden Fall für Eure Hilfe im voraus.
Joachim
Hallo Joachim,
hast Du es schon mal so versucht:
top.frames[F0].location.href=URL0;
Grüsse
Cyx23
Hi Cyx23,
ja das habe ich getestet, funzt auch nicht.
Weisste noch ne andere Lösung??
Greetings
Joachim
Hallo Joachim,
hast Du es schon mal so versucht:
top.frames[F0].location.href=URL0;
Grüsse
Cyx23
Hallo Joachim,
ja das habe ich getestet, funzt auch nicht.
Weisste noch ne andere Lösung??
wenn sich der mittlere Frame immer anders verhält bei gleicher
Methode kann an der betr. Datei was falsch sein, es sieht
jedenfalls nicht nach einem html-problem aus.
Ansonsten systematisch alles vereinfachen oder ersetzen
bis es funktioniert um den Fehler zu finden usw.
top.frames[F0].location.href=URL0;
top.frames[0].location.href=URL0;
top.frames[0].location.href='obendatei.asp';
top.frames[0].location.href='obentest.html';
parent.frames[0].location.href=
top.nameframeoben.location.href=
parent......
ansonsten könnte noch in den Dateien irgendein onload() Fehler verursachen.
Dann kann es generell Probleme geben beim mehrmaligen Laden der gleichen
Datei an den gleichen Ort, das wird u.U. nicht ausgeführt.
Grüsse
Cyx23
Hallo Cyx23,
habe Deine Vorschläge gerade durchgetestet; das Ergebniss ist nachwie vor das gleiche, es funktioniert nicht.
Onload Fehler kann ich ausschliessen, da ich bisher diese Funktionalität nicht brauchte.
Irgendie wirkt es so, als ob der Name des Frame beom erstmaligen laden der Site nicht mit rüberkommt, weil, sobald das unerwünschte doppelte frame aufgebaut wurde funktioniert alles bestens.
Habe auch sch versucht, in der framedefinition den Namen wegzulassen, aber das hilft auch nicht.
Was tuen, frage ich mich.
Greetings
Joachim
Hallo Joachim,
Was tuen, frage ich mich.
von vorne anfangen und vorsorglich alle möglichen Probleme vermeiden,
das heisst hier 1. alle Bezeichner und Namen vorsichtshalber so ändern
dass keine Browserinterna angesprochen werden könnten, also ich wäre
mit frametop usw. vorsichtig auch wenn hier wohl trotzdem alles geht.
und 2. vor Allem die function in die Datei mit dem Frameset schreiben,
den scriptteil vor das frameset in den head.
Diese dann ansprechen per <a href="javascript:top.dieFunction('.....
und in der function nach dem Schema wenn aus einem Frame aufgerufen wird:
parent.frametop.location.href=aRL0;
Bei mir klappt's so.
Grüsse
cyx23
Hallo cyx23,
welch schwere Geburt, aber Dein Tip Nr. 2 hat geholfen.
Danke Dir vielmals für Deine Unterstützung.
Greetings
Joachim