Medien Internet Webdesign Lösungen Einzelnen Frame umleiten ins Frameset

Wird eine Website von einem Suchdienst indexiert, so kann es passieren, dass einzelne Seiten eines Framesets verlinkt werden, die dann beim Anklicken ohne den Rest des Framesets erscheinen.
Diesen wenig wünschenswerten Effekt kann man mit Hilfe einer JavaScript-Struktur lösen, die im folgenden erklärt wird.

In der Startdatei des Framesets, meist die Datei index.html, wird folgendes Script eingebaut:

<script language="JavaScript">
<!--
function to_top() {if(self!=top) top.location.href=self.location.href};onLoad=to_top();
var back2frame = "yes", folder="", file="";
var uebergabe = self.location.search;
  if (uebergabe != "")
    {uebergabe=uebergabe.substring(1,uebergabe.length);
     for (i = 0; i < uebergabe.length; i++)
       {if (uebergabe.charAt(i) == "?")
          {folder=uebergabe.substring(0,i);
           file=uebergabe.substring(i+1,uebergabe.length);}}}
//-->
</script>

Nehmen wir nun an, das Frameset bestünde aus zwei Frames, einem zur Navigation und einem grösseren zur Anzeige der Inhalte mit dem Dateinamen "main.html" und der Framebezeichnung "main". In dieser Hauptseite des Framesets, die beim ersten Aufruf geladen wird, müssen drei weitere Scripts eingebaut werden:

<script language="JavaScript"><!--
function ersetzen(adresse) {parent.main.window.location.href = adresse;}
function nach_top(adresse) {top.window.location.href = adresse;}
// -->
</script>

<script language="JavaScript1.1"><!-- function ersetzen(adresse) {parent.main.window.location.replace(adresse);} function nach_top(adresse) {top.window.location.replace(adresse);} // --> </script>

<script language="JavaScript"><!-- if (top.back2frame + "" != "yes") {nach_top("index.html");} else {if (parent.file+"" != "") {datei = parent.file; parent.file = ""; if (parent.folder+"" != "") {datei = parent.folder+"/"+datei;}; ersetzen(datei+".html");}}; // --> </script>

Jede weitere Seite, die im main-Frame aufgerufen wird, benötigt nun das eigentliche Script zur Umleitung der Seite zurück in das dazugehörige Frameset. Im folgenden Beispiel wird die Seite "aktuelles.html" im Unterverzeichnis "seiten" wieder zusammengeführt mit dem in "index.html" (eine Verzeichnisebene höher) definierten Frameset.

<script language="JavaScript"><!--
function ersetzen(adresse)
  {top.location.href = adresse;}
function ersetzen(adresse)
  {top.location.replace(adresse);}
folder="seiten"; file="aktuelles";
  if (parent.back2frame + "" != "yes")
    {ersetzen("../?"+folder+"?"+file);}
// --></script>