bestimmter Startframe 01
    


WWW.WEB-TOOLBOX.NET

Demo01 ZURÜCK SITEMAP  

 Anzeige in einem bestimmten Frameset


Ihre Unterseite soll nur in ihrem eigenen Frameset angezeigt werden. Sie möchten verhindern, dass ihre Unterseiten als Bestandteil fremder Seiten in deren Frameset dargestellt werden.

HTML-Seite nur in meinem Frameset anzeigen

Sie möchten Ihre Unterseite in ihrem Frameset aufrufen. Die meisten Scripts prüfen lediglich, ob die Seite grundsätzlich in einem Frameset aufgerufen wird. Aber ist es auch Ihr Frameset?

JavaScript bietet die Möglichkeit den Namen eines Frames abzufragen (die Namen vergeben sie bei der Definition ihres Framesets). Damit haben sie die Möglichkeit, das Vorhandensein eines Frames mit einem bestimmten Namen zu überprüfen. Gibt es einen Frame mit genau diesem Namen, ist die Wahrscheinlichkeit gross, dass es sich um Ihren eigenen Frameset handelt.



   Zwei Prüfungen

So erzwinge ich die Darstellung einer
Unterseite im eigenen Frameset.

Ich teste hier 2 Dinge:

1. Prüfung:

Wird die Seite grundsätzlich im Frameset aufgerufen?

Falls nicht, meine Startseite (Frameset) aufrufen

2. Prüfung:

Den Namen eines Frames im Set überprüfen (ist es auch mein Frameset?)

Falls nicht, meine Startseite (Frameset) aufrufen

 

   Demo der Funktion

Wie das in der Praxis aussieht, wenn sie auf ihrer Seite das hier beschriebene Script nutzen würden, können sie mit diesen Demos betrachten. Die Demos werden in einem Pop-Up-Window angezeigt. Zwei Demos zeigen die Darstellung innerhalb eines Framesets (deutlich hervorgehoben) die dritte den Aufruf der Datei außerhalb eines Framesets.

1) Demo mit zutreffenden Bedingungen

Hier ist der Namenseintrag für den Frame richtig. Die Seite wird in einem Framekonstrukt ähnlich dem der Web-Toolbox angezeigt.

Demo 01 Bedingung erfüllt

2) Demo mit nicht zutreffenden Bedingungen

Die Seite wird zwar innerhalb eines Framesets angezeigt aber der überfrüfte Framename stimmt nicht. Ich frage hier den Namen des 4. Frames ab. Sie werden zum Frameset weitergeleitet.

Demo 02 - Bedingung nicht erfüllt

3) Demo mit nicht zutreffenden Bedingungen

Die Seite wird nicht innerhalb eines Framesets angezeigt. Sie werden gleich nach der ersten Prüfung zum Frameset weitergeleitet.

Demo 03 - Bedingung nicht erfüllt



   Framename des ersten Frames ermitteln

Weil im JavaScript der Name des ersten Frames verwendet wird, muss dessen Bezeichnung bekannt sein. Framenamen werden bei der Notierung des Framesets festgelegt.

Hier ein Beispiel eines verschachtelten Framesets Info zur Definition


Definition des Framesets:

<frameset rows=" 90, * ">
    <frame name="oben" ... > 
    <frameset cols="200, * " >
         <frame name="nav" ... >
         <frame name="anzeige" ... >
    </frameset>

</frameset>

Der Name des ersten Frames (dem Frame mit der Nummer 0) ist 'oben'. Berücksichtigen sie, dass der Browser dem ersten Frame die Nummer "0" zuweist, dem zweiten die Nummer "1", ...


   Das JavaScript

Bei der ersten Prüfung wird ermittelt, ob ein Frameset existiert. Das geschieht durch die Abfrage: "wie viele Frames gibt es?" Ist die die Anzahl der Frames Null (0), gibt es auch keinen Frameset.

Bei der zweiten Prüfung wird der Name des ersten Frames überprüft. Es wird ermittelt, ob der Name des ersten Frames (dem Frame mit der Nummer 0) 'oben' ist!


Wenn sie das Script in den HEAD-Bereich ihrer HTML-Datei einkopieren, wird beim Aufruf der Datei die Prüfung durchgeführt. Das Script kann natürlich auch in einer externen JavaScript-Datei stehen.



<script type="text/javascript" language="JavaScript">
<!--

function pruefen() {

// 1. wird die Seite in einem Frameset aufgerufen?

if (parent.frames.length == 0)
top.location.href = "http://www.clickstart.de";
else
{

// 2. prüfen ob es auch Ihr Frameset ist
// den Namen des 1. Frames abfragen
// hier wird der Name 'oben' abgefragt

 if(top.frames[0].name != "oben")
 top.location.href = "http://www.clickstart.de"
 }
 return
}

// Aufruf der Funktion
pruefen();


//-->
</script>







12.01.2000   

NACH OBEN