Seite ins Frameset zwingen

Wenn du verhindern willst, dass deine Seiten ohne dein Frameset aufgerufen werden, schreibe einfach in jede deiner geframten Seiten folgendes einfache Script in den <head>Bereich. Das Script muss also im Quelltext der Seite zwischen <head> und </head> stehen.

<script type="text/javascript">
<!--
if (parent.location.href == location.href) {
parent.location.href = "http://deine.sei.te/frameset.htm";
};
//-->
</script>

Erklärung:

<script type="text/javascript"> bewirkt, dass ab hier die Dokumentsprache JavaScript ist (also nicht mehr HTML).

<!-- Diese Zeile bewirkt, dass Browser, die kein JavaScript ausführen können, das folgende ignorieren. Das ist sinnvoll, weil diese Browser sonst Fehlermeldungen zeigen würden.

if (parent.location.href == location.href) { bedeutet: Wenn die Adresse des Elterndokuments (also des Framesets das diese Seite enthält) die selbe ist, wie die Adresse dieses Dokuments, dann führe aus, was in der geschweiften Klammer steht. Nach der Klammer muss (!!!) ein Zeilenumbruch im Quelltext erfolgen. Diese Bedingung ist erfüllt, wenn es kein Elterndokument gibt. Wenn es kein übergeordnetes Element gibt, erkennt der Browser diese Seite selbst als übergeordnetes Element. Anders ausgedrückt: Wenn die Seite nicht Bestandteil eines Framesets ist, wird gemacht, was in der geschweiften Klammer steht. Wenn die Seite in einem Frameset ist, hat das Frameset natürlich auch eine andere Adresse als die geframte Seite und der Quelltext in der Klammer wird nicht berücksichtigt.

parent.location.href = "http://deine.sei.te/frameset.htm"; legt fest, dass die Adresse der Elternseite "http://deine.sei.te/frameset.htm" ist. "http://deine.sei.te/frameset.htm" musst du natürlich durch die URL deines Framesets ersetzen. Achtung!!! Gebe hier auf keinen Fall die Adresse der geframten Seite an!!! Auch nicht aus Versehen!!! Wenn du das tust, hängt sich im günstigsten Fall der Browser des Besuchers auf. Je nach Betriebsystem kann sich auch sein Rechner aufhängen. Beachte, dass die URL in Anführungszeichen stehen muss und dass die Zeile mit einem Semikolon endet.

} Beachte, dass die Klammer alleine in einer eigenen Zeile stehen muss.

//--> Hier endet der Bereich, der von Browsern die kein JavaScript beherrschen ignoriert wird.

</script> Hier endet das Script und die Dokumentsprache ist ab hier wieder HTML.

Wenn die Seite, die dieses Script enthält, alleine, also außerhalb eines Framesets, aufgerufen wird, öffnet sich statt dessen die Seite, die bei http://deine.sei.te/frameset.htm angegeben ist. Normalerweise ist das das Frameset, das die aufgerufene Seite enthält.


Um einen Link zu setzen, der direkt auf diese Seite führt, verwende folgende Url: