Hallo Tom!
Mirko hat Dir bereits einiges Erklärendes geschrieben.
Ich möchte dennoch die Funktion für Dich (und andere) ausführlicher erläutern:
if (self.name == 'NAME DEINES ANZEIGENDEN FRAMEFENSTERS')
{ ;}
else { if (self != top)
top.location.href = self.location;}
Was bewirkt denn das alles?
In Deinem Frameset hast sicherliche einen Hauptframe, in welchem die Dateien, die es von eventuellen, fremden Framsets zu befreien geht, angezeigt werden. Diesen Frame hast Du hoffentlich (wie es sich gehört, wenn man JS einsetzen will) einen Namen gegeben. Nehmen wir an, der Anzeigeframe heißt "text", OK?
if (self.name == 'text)
{ ;}
Mit dieser Abfrage, die in die in Frage kommenden Dateien gehört, checkst Du, ob die Datei bereits in einem Frame namens "text", also Deinem Anzeigeframe (oder Haupftframe), geladen worden ist. Ist dies der Fall, passiert nichts: Du willst ja Deinen eigenen Frameset nicht killen, oder?
else { if (self != top)
top.location.href = self.location;}
Nun checkst Du, ob die Datei in einem anderen Frameset geladen ist: "else {if (self!=top)" und wenn das der Fall ist, wird die Datei mit diesem Beispiel standalone aufgerufen.
Willst du anstelle dessen, dass die Datei in Deinem Frameset aufgeht, mußt Du hier den entsprechenden Namen angeben:
top.location.href ='meineframesdatei.html'
Da wird das Frameset allerdings mit der Startseite, die Du definiert hast, geladen.
mit
self.location.href= 'meineframesdatei.html?losedatei.html'
müßte es dann gehen, bin mir aber nicht ganz sicher. Vielleicht kann mir hier jemand berichtigen. Außerdem funzt sowas beim IE nur in einer HTTP-Umgebung, also nur online.
Bis danndann
PAF (patrickaus?frankfurt)
Leider hake ich noch etwas bei dem Konstrukt.
Wenn self einen Namen hat, muß es doch zwangsläufig in einem frameset sein, oder?
Wenn es dann standalone sein soll, brauch ich doch gar nicht mehr weiterfragen...
Oder nein, Du hast bestimmt ein zweites Browserfenster aufgemacht...
Jetzt hab ich's, da versteh ich dann auch den Sinn der doppelten Abfrage.
Wirklich wichtig ist die Sache mit dem self==top. Die scheint nämlich auch erlaubt zu sein, wenn top auf einer anderen Domain liegt.
Hatte ich auch gerade rausgefunden. Wollte gerade was dazu schreiben...
Naja, damit experimentiere ich jetzt ein bißchen...
viele grüße, tom