Frameset nachladen
Reiner
- javascript
Ich fand hier folgene Tipps, um ein Nachladen des Framesets zu erzwingen, falls jemand direkt auf eine meiner Pages zugreift:
In die betreffende Page soll ich folgenden Code schreiben:
<SCRIPT language="JavaScript">
<!--
function checkFrameset() {
if(!parent.xyzVerweisframe)
location.href="http://www.xy.de/unterverzeichnisXY/index.htm?" + location.pathname;
}
//-->
</SCRIPT>
</head>
<body onLoad='checkFrameset()'>
in die index-page soll ich schreiben:
<SCRIPT language="JavaScript">
<!--
function checkFramecall() {
var Adressanhang=location.search;
if(Adressanhang)
frames.xyzHauptframe.location.href=Adressanhang.substring(1,Adressanhang.length);
}
//-->
</SCRIPT>
</head>
<frameset cols="60,*" onLoad="checkFramecall()">
<frame name="xyzVerweisframe" src="links.htm">
<frame name="xyzHauptframe" src="start.htm">
Nun habe ich mir eine meiner Pages vorgenommen und folgendes reingeschrieben:
<SCRIPT language="JavaScript">
<!--
function checkFrameset() {
if(!parent.topFrame)
location.href="http://www.infomorelos.com/index.htm?http://www.infomorelos.com/start.html";
}
//-->
</SCRIPT>
start.html ist die Seite, die das Frameset nachladen soll, falls direkt auf sie zugegriffen wird.
In die index.htm habe ich gar nichts reingeschrieben, trotzdem funktioniert das Nachladen einwandfrei. Warum ist ds so? Nur weil ich IE6 verwende oder weil die start.html-page Teil meines in index.html definierten framesets ist. Oder warum kann ich mir die Erweiterung der index.htm sparen?
Irgendwo muss da noch was laueren, weshalb ich gleich mal frage ob:
location.href="http://www.infomorelos.com/index.htm?http://www.infomorelos.com/start.html"; richtig ist, oder ob es eher sowas wie location.href="http://www.infomorelos.com/index.htm?" + location.pathname="http://www.infomorelos.com/start.html"; sein sollte.
Kann mich da jemand aufklären?
Hi,
<frameset cols="60,*" onLoad="checkFramecall()">
<frame name="xyzVerweisframe" src="links.htm">
<frame name="xyzHauptframe" src="start.htm">
start.htm ist also der Defaultwert für diesen Frame.
start.html ist die Seite, die das Frameset nachladen
soll, falls direkt auf sie zugegriffen wird.
Genau. Und das ist das Besondere an Deinem Szenario.
In die index.htm habe ich gar nichts
reingeschrieben, trotzdem funktioniert das Nachladen
einwandfrei. Warum ist ds so?
Weil Du gar nicht das tust, worum es im allgemeinen
Fall eigentlich geht.
Ein Frameset verwendet man ja nicht, um dort genau ein
Dokument hineinzuladen, sondern, um dort verschiedene
Dokumente zu verschiedenen Zeitpunkten anzuzeigen.
Wenn Du in diesem Falle das Frameset nachlädst, dann
muß dieses Frameset irgendwie herausfinden, welche
der vielen möglichen Dateien denn im xyzHauptframe
anzuzeigen wäre - dafür ist die entsprechende Logik
erforderlich, welche diese Informatione aus dem
Query-String extrahiert und den Frameset dann dynamisch
neu schreibt.
In Deinem Falle soll aber immer nur eine konstante
Datei (links.htm bzw. start.htm) angezeigt werden -
da reicht natürlich ein statisches Frameset ohne
Intelligenz aus.
Oder warum kann ich mir die Erweiterung der
index.htm sparen?
Wenn mehr als eine Datei innerhalb eines Deiner Frames
geladen sein kann, brauchst Du die Erweiterung.
(Und wenn nicht, wieso verwendest Du überhaupt Frames?)
Viele Grüße
Michael