|
|
Ist eine Webseite als Bestandteil eines Framesets konzipiert, ist es oftmals notwendig, dieses Frameset "nachzuladen".
Speziell Suchmaschinen leiten einen Besucher zu dem gefundenen Dokument und nicht zum dazugehörigen Frameset weiter.
folgende Javascriptzeile:
 |
 |
 |
 |
<script type="text/JavaScript">
<!--
if(self==top){window.location="frameset.htm";}
//-->
</script>
|
 |
 |
 |
 |
überprüft mit if(self==top), ob das Fenster das oberste Fenster innerhalb der Fensterhierarchie ist.
Ist dies der Fall, bedeutet dies, daß die Seite nicht innerhalb eines Framesets geladen ist und in diesem Beispiel die Seite frameset.htm in das Fenster geladen wird,
welche das entsprechende Frameset definiert.
Der Nachteil dieser Methode ist, daß das so aufgerufene Frameset in seinem Originalzustand aufgerufen wird.
Ist die Ursprungsseite in diesem Frameset nicht als Inhalt eines Frames definiert, muß der Besucher erst nach dem gewünschten Dokument suchen.
Abhilfe dabei schafft dabei folgende Lösung:
Beispiel
korrektes Frameset nachladen
Quelltext des Javascriptes innerhalb der Unterseiten des Framesets:
 |
 |
 |
 |
<script type="text/javascript">
<!--
if(self==top)
{
window.location='index.html'+'?'+'inhalt'+'='+window.location;
}
//-->
</script>
|
 |
 |
 |
 |
Erläuterung:
Beim Laden der Seite wird geprüft, ob sich die Seite innerhalb eines Framesets befindet.
Ist dies nicht der Fall, wird das aktuelle Dokument gegen die Seite index.html ausgetauscht, welche das Frameset beinhaltet.
Die URL der index.html wird dabei um einen Parameter ergänzt, welcher den Namen des Frames, in welches die aktuelle Seite gehört, und die Adresse der
aktuellen Seite enthält.
Quelltext des Javascriptes innerhalb der index.html
 |
 |
 |
 |
<script type="text/javascript">
<!--
function frame_laden()
{
if(location.search!='')
{
parameter=String(location.search);
parameter=parameter.substring(1,parameter.length);
parameter=parameter.split('=');
if(window.frames[parameter[0]])
{
window.frames[parameter[0]].location=parameter[1];
}
}
}
window.onload=frame_laden;
//-->
</script>
|
 |
 |
 |
 |
Erläuterung:
Beim Laden des Fensters wird die Function frame_laden() aufgerufen (bei der im Beispiel angewandten Methode des Aufrufs dürfen anschliessend an den Funktionsnamen keine runden Klammern notiert werden!).
Diese Funktion prüft mit if(location.search!=''), ob die aktuell gegebene URL Parameter enthält. Ist dies der Fall, wird von diesem Parameter das erste Zeichen (?) entfernt.
Daraufhin wird die so entstandene Zeichenkette anhand des Trennzeichens = in einen Array zerlegt. Dieser Array enthält nunmehr als erstes Element den Namen des Zielframes, und als
zweites Element die URL der in dieses Frame zu ladenden Datei, welche im Folgenden in dieses Frame geladen wird.
|
|