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.
|