Frameset nachladen

StarHTML

 
 

Suchmaschinen registrieren stets nur einzelne HTML-Dateien und keine Framesets. Dadurch landen Surfer häufig auf Web-Seiten, zu denen eigentlich noch ein Frameset gehört. Hier möchte ich ein JavaScript vorstellen, dass dies wirkungsvoll verhindert.

Ich gehe im folgenden von einer typischen Frameset-Homepage aus, die aus einem Inhalts-Frame und einem oder mehreren Navigations-Frames besteht. Aus den letzteren führen Verweise zu den Inhalts-Seiten, die im Inhalts-Frame geladen werden.

Stellen Sie sich vor, ein Besucher findet in den Ergebnissen einer Suchmaschinensuche eine Ihrer Inhalts-Seiten. Wenn er dieses Ergebnis anklickt, wird die Inhaltsseite ohne Frameset geladen.
Der ganze Trick besteht nun darin, per JavaScript zunächst zu überprüfen, ob das Frameset geladen wurde. Wenn es nicht geladen wurde, wird es aufgerufen, und die zuvor einzeln aufgerufene Seite automatisch im Inhalts-Frame nachgeladen.


Das erste Skript kommt in den head-Teil aller Inhalts-Seiten (und auch in die Startseite des Inhalts-Frames):

<script language="JavaScript">
<!--
function FramesetTest() {
if (top.frames.length==0) {
  Address="[Frameset-Datei]?[Inhaltsseite]";
  if(document.images) top.location.replace(Address);
  else top.location.href=Address;
  }
}
//-->
</script>

Es wird durch das Attribut onLoad=, dass in das body-Tag der selben Inhaltsseite gehört, aufgerufen: <body ... onLoad="FramesetTest()">

Das zweite Skript kommt in den head-Teil einer Navigations-Seite, die mit dem Aufruf der Frameset-Datei geladen wird:

<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.[Inhalts-Frame].location.replace(Address);
  else top.[Inhalts-Frame].location.href=Address;
  }
}
//-->
</script>

Auch dieses Skript wird im body-Tag der Datei aufgerufen, in die es eingebunden ist. Und zwar mit:
<body ... onLoad="Jump()">

Alles was Sie nun noch verändern müssen, sind die Dateinamen im ersten Skript und der Frame-Name im zweiten:
[Frameset-Datei] steht für die Datei, die das komplette Frameset enthält.
[Inhaltsseite] ist die jeweilige Datei, in der das erste Skript steht.
[Inhalts-Frame] ist der Frame-Name des Inhalts-Frames.


Ein Hinweis: Befindet sich die Inhaltsseite nicht im selben Verzeichnis wie die Frameset-Datei, müssen die entsprechenden relativen Pfadangaben eingesetzt werden.
[Frameset-Datei] ist also der relative Pfad von der Inhalts-Seite zur Frameset-Datei.
[Inhaltsseite] ist der relative Pfad von der Frameset-Datei zur Inhalts-Seite zurück.

Das Frameset-Nachlade-Skript nutzt übrigens JavaScript 1.0 und ist damit kompatibel zu Netscape ab Version 2 und Internet Explorer ab Version 3.

 
 

StarHTML Online-Forum © 3/2002 Autor: Martin Zwirner Home: www.starhtml.de Kontakt: EMail-Formular