Achim Hagenkötter: Zwei Frames gleichzeitig ändern, dabei eines nachladen

Hallo zusammen,

kein ganz neues Problem, aber ich komme nicht weiter:
Ich habe drei Frames:
links - "menu", das immer gleich bleiben soll
oben -  "top", welches in Abhängigkeit vom dritten Frame geändert werden soll
mitte rechts - "main", das eigentliche Contentframe

Folgendes möchte ich erreichen:
1. Immer wenn für "main" ein neuer Inhalt aufgerufen wird, soll automatisch der passende Inhalt für "top" mitgeladen werden, egal ob der Aufruf aus der

eigentlichen Navigationsleiste, die sich im Frame "menu" befindet, oder woanders herkommt.
2. Wenn das "übliche Problem" ensteht, d.h. eine Contentseite, die in "main" stehen sollte, separat aufgerufen wird, soll das Frameset und der zugehörige

Inhalt in "top" geladen werden.

U.a. habe ich Folgendes versucht, leider ohne Erfolg:

Mein Frameset(index.htm):
------------------------------
<frameset cols="159,*" border="0" framespacing="0">
  <frame src="sites/menu.htm" name="menu" frameborder="0" scrolling="no">
  <frameset rows="106,*" border="0" framespacing="0">
   <frame src="sites/tops/top.htm" name="top" frameborder="0" noresize scrolling="no">
   <frame src="sites/start.htm" name="main" frameborder="0" noresize>
  </frameset>
 </frameset>

-------------------------------

Contentseiten:

-----------------------
<script language="JavaScript">
<!--
 function loadSet()
{
if (top.frames.length < 1)
top.location.href="../index.htm?content3/content3.htm&tops/top3.htm";
}

//-->

</script>

</head>
 <body onload="loadSet()"

------------------

Noch ein Anmerkung zur Hierachie der Daten:
das Frameset (index.htm) liegt im obersten Verzeichnis, in diesem liegen die Verzeichnisse "sites" und "content3", darin wiederum jeweils ein Verzeichnis "tops"

Hat jemand eine Idee?

MfG, Achim H.

  1. Ich füge noch an:

    Das "Nachziehen" des zweiten Frames (top.htm, Banner m. Untermenü) habe ich über:

    --------------------------------
    <script language="JavaScript">
    <!--
     function checkFrameset() {
      if(parent.top!="sites/top.htm?")
      window.open("sites/top.htm",target="head")
     }
    //-->
    </script>
     </head>

    <body onload="checkFrameset()">
    ------------------------------------------------

    realisiert, scheint aber nicht die beste Lösung zu sein. Es funktioniert, solange die jeweilige Seite aus dem Frameset heraus aufgerufen wird. Sobald aber der Contentframe allein aufgerufen wird, steht er allein im Raum und das Script produziert ein weiteres Fenster mit dem head-frame.

    MfG, Achim

  2. Moin,

    Ohne mir jetzt deine Skripte angesehen zu haben, aber ich glaube so etwas ähnliches habe ich vor langer Zeit auch mal produziert: http://www.cjd-rostock.de (Ja, ich weiss, dass die Skripte in Mozilla deaktiviert sind. Wie gesagt, das ist schon ein bisschen her.)

    1. Immer wenn für "main" ein neuer Inhalt aufgerufen wird, soll automatisch der passende Inhalt für "top" mitgeladen werden, egal ob der Aufruf aus der

    So ähnlich. Der Inhalt eines zusätzliches Frames wird hierbei zwar dynamisch erzeugt, das aber in Abhängigkeit davon, welcher Inhalt im Hauptframe liegt. Sollte sich kinderleicht ummodeln lassen, um fertige Hauptdateien zu laden. Dazu wird in bottoml.htm alle 500ms isnew() aufgerufen und überprüft ob sich der Inhalt des Inhaltsframes geändert hat. Falls ja, wird der Inhalt des Frames der Sitemap anzeigen soll, entsprechend geändert.

    1. Wenn das "übliche Problem" ensteht, d.h. eine Contentseite, die in "main" stehen sollte, separat aufgerufen wird, soll das Frameset und der zugehörige
      Inhalt in "top" geladen werden.

    Ja, dazu enthält jede Datei einen JavaScript-Fetzen der nach dem Laden aufgerufen wird und in 100ms Schritten höchstens 5mal überprüft ob das umgebende Frameset schon geladen wurde. Falls nicht, bietet es an das Frameset nachzuladen und lädt dazu die index.htm und hängt seine eigene Position als Querystring an (ja, der Code kommt mir aus heutiger Sicht auch ekelhaft vor). Die index.htm schaut dann, ob so ein Dateiname angehängt wurde, und lädt den gegebenenfalls ins Hauptframe.

    --
    Henryk Plötz
    Grüße aus Berlin