Internet
Webdesign
Lösungen
Einzelnen Frame umleiten ins FramesetIn 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>