JavaScript - Genaue Anleitung zum Nachladen des Framesets

Heutzutage besteht fast jede Webseite aus einem Frameset. Wenn man eine Webseite mithilfe von einem Frameset erstellt, bringt dies viele Vorteile bei der Wartung der Seite mit sich. Da man das Menü in einem separaten Frame unterbringen kann, so muss man bei einer späteren Änderung des Menüs nicht jede einzelne Webseite überarbeiten, sondern nur noch eine einzige. Zwar gibt es viele Vorteile durch ein Frameset, doch auf einen entscheidenden Nachteil sollte man als Webmaster unbedingt achten: In Suchmaschinen wird immer der direkte Link zu der einzelnen Webseite angegeben, so dass der Leser, der über eine Suchmaschine wie Yahoo! zu der Webseite gelangt, nur die einzelne HTML-Seite sieht, nicht aber die komplette Webseite mitsamt des Menüs.

Alle Suchmaschinen geben in Ihren Suchergebnissen die direkte URL
zu der einzelnen HTML-Seite an

Wenn sich der Leser von der Startseite durch die einzelnen Seiten klickt, wird es keine Probleme geben, doch die meisten Leser kommen über Suchmaschinen zu den gesuchten Seiten. Ein Beispiel: wenn ein Leser nach Informationen zur Grafikkarte Geforce FX 5900 sucht, wo wird er diesen Begriff in eine Suchmaschine wie Yahoo eintippen und zahlreiche Ergebnisse erhalten. Hat er sich für ein Suchergebnis entschieden, wird er jetzt nicht umständlich in die Adressleiste des Browser www.pc-erfahrung.de eingeben, sondern er wird aus Bequemlichkeit auf den Link klicken, der aber direkt zur der einzelnen Webseite führt. Jetzt wird in seinem Browser aber nur die einzelne HTML-Seite ohne das komplette Frameset geladen, wo sich unter anderem das Menü befindet. Der Leser wird sich nun den einzelnen Bericht durchlesen und enttäuscht weitersurfen, weil es angeblich auf dieser Seite nur den einzelnen Artikel gibt.
Beim Klick auf ein Suchergebnis wird dem Leser nur
eine einzelne HTML-Seite angezeigt. Das Frameset fehlt.

Doch für dieses recht simple, aber für den Leser sehr bedeutsame Problem gibt es eine Lösung. Man muss lediglich einen kleinen Java Script-Code in seine Webseite integrieren, welcher überprüft, ob das Frameset mitgeladen wurde und wenn nicht es den Browser dazu veranlasst, das Frameset nachzuladen. Wenn der Leser jetzt auf den Link eines Suchergebnisses klickt und direkt zu der einzelnen HTML-Seite geleitet wird, so erkennt der Java Script-Code dies automatisch und sorgt dafür, dass das fehlende Frameset automatisch nachgeladen wird.
Frameset Nachladen JavaScript
Und so wird's richtig gemacht. Das Frameset wird automatisch
nachgeladen und die Webseite erscheint komplett.

Dem Leser, der über die Suchmaschine zu der Webseite gelangt war, wird nun der komplette Inhalt der Webseite mitsamt des Menüs angezeigt.

Anleitung

Bevor ich aber beginne, sollte wir auf die notwendigen Fachbegriffe eingehen. Als Frameset wird die komplette Webseite genannt, die aus den einzelnen Frames besteht. Damit der Browser überhaupt weiß, wie und wo er die einzelnen HTML- bzw. Frame-Seiten anordnen soll, gibt es die so genannte Frameset-Datei, welche alle wichtigen Angaben über die Anordnung der Frames beinhaltet. In der Regel ist die Frameset-Datei gleichzeitig auch die Startseite der kompletten Webseite, die man unter dem Namen Index.html speichert. Zur besseren Verständnis solltet Ihr euch folgende Grafik anschauen.
Frameset Nachladen JavaScript
Der Aufbau eines Framesets

Damit das Frameset bei Aufruf der Seite nachgeladen wird, muss man jede einzelne HTML-Seite mit einem Java Script-Code ergänzen. Beginnen wir bei der Frameset-Datei (Index.html): Hier muss man lediglich den rot markierten Script-Code in den Head-Bereich einfügen und den Body-Tag um onLoad="Jump()" erweitern. Dies war der erste Schritt.

Programmcode der Frameset-Datei

...
...
<meta name="Content-language" content="DE">
<meta name="Page-type" content="Bildungseinrichtung">
<meta name="Robots" content="INDEX,FOLLOW">

<script language="JavaScript">
<!--
function Jump() {
if (top.location.search!="") {
var Size=top.location.search.length;
var Address=top.location.search.substring(1,Size);
if(document.images)
top.Middle.location.replace(Address);
else top.Middle.location.href=Address;
}
}
//-->
</script>
</head>
<FRAMESET ROWS="106,*" border="0">
<FRAME NAME="Top" SRC="Top.html">
<Frameset COLS="150,*,160" border="0">
<FRAME NAME="Links" SRC="Links.html">
<FRAME NAME="Middle" SRC="Mainnews.html">
<FRAME NAME="Rechts" src="Rechts.html" frameborder="0" Noresize scrolling="auto">
</FRAMESET>
</FRAMESET>
<body onLoad="Jump()" >   </body>
...
...

Hat man dies erledigt, muss man sich jede einzelne HTML-Seite seiner Webseite vorknüpfen, bei der man es erwünscht, dass das Frameset nachgeladen wird, sobald ein Leser per Suchmaschine auf diese einzelne Seite verwiesen wird.

Programmcode der einzelnen HTML-Seiten

...
...
<meta name="Content-language" content="DE">
<meta name="Page-type" content="Bildungseinrichtung">
<meta name="Robots" content="INDEX,FOLLOW">

<script language="JavaScript">
<!--
function FramesetTest() {
if (top.frames.length==0) {
Address=" index.html?GeforceFX5900.html ";
if(document.images) top.location.replace(Address);
else top.location.href=Address;
}
}
//-->
</script>
<base target="Middle">
<Link rel="stylesheet" type="text/css" href="Daten/JavaScript/CSSPCE.css">
</head>
<BODY onload="FramesetTest();" background="Menu/Hintergrund.jpg">
...
...

Bei der einzelnen Webseite muss den hier rot markierten Text erst noch an die jeweilige HTML-Seite anpassen. Den in der Zeile Address= muss man vor dem Fragezeichen den Link zur Framesetseite und anschließend den Link der HTML-Seite angeben. Um auf der sicheren Seite zu sein, sollte man hier die vollständige Adresse angeben, also anstatt des einfachen Index.html die URL www.pc-erfahrung.de/index.html. Dann kann man halt die Seiten nicht testen, wenn man nicht mit dem Internet verbunden ist und man offline an seinem Rechner arbeitet. Na klar, denn der Browser versucht auf das Internet zuzugreifen.