Problem mit parent.frames.~
Sumpfkuh
- javascript
Moin :)
In einem Index-File steht folgendes:
<HTML><HEAD>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="expires" content="0"><TITLE></TITLE>
<SCRIPT language="JavaScript">
alert(parent.frames.length);
for(i=0; i < parent.frames.length; ++i)
alert(parent.frames[i].name);
</SCRIPT>
</HEAD>
<FRAMESET COLS="340,*" bordercolor=#000052>
<FRAMESET ROWS="200,*">
<FRAME SRC="title.htm" NAME="Title">
<FRAME SRC="denkste.htm" NAME="Liste">
</FRAMESET>
<FRAME SRC="disclaim.htm" NAME="pic">
</FRAMESET>
<BODY></BODY>
</HTML>
Beim Aufruf des Index wird per alert() die Anzahl der darunter vorhandenen Frames ausgegeben, nämlich drei. Denkt man. Ist aber nicht der Fall! Die Anzahl der frames ist angeblich null; deshalb werden auch die Frame-Namen nicht ausgegeben.
Lässt man das "parent" weg (man will ja auf die Frames innerhalb des Index zugreifen), passiert das gleiche. Nun dachte ich, daß die Frame-Definition ja erst nach dem Script-Bereich kommt und somit zur Laufzeit noch nicht bekannt ist. Wenn ich aber den Script-Bereich z.B. in den BODY setze, wird er überhaupt nicht ausgeführt.
Weiß da einer weiter???
EmmEffGeh
SK
Hey,
ist doch völlig normal.
Duch den Aufruf der Dateien in den Frames liegt die Kontrolle bei den einzelnen Dateien.
Wofür soll die Info der Anzahl der Frames gut sein, sofern manuell definiert werden?
Soll heißen:
Schildere Dein Problem doch etwas ausführlicher.
Bis bald
Frank
Hey,
ist doch völlig normal.
Duch den Aufruf der Dateien in den Frames liegt die Kontrolle bei den einzelnen Dateien.
Wofür soll die Info der Anzahl der Frames gut sein, sofern manuell definiert werden?
Is wohl eppes abstrakt. Letztlich will ich auf einen gewissen Frame zugreifen und abhängig von einer im Index per JavaScript definierten Bedingung die href ändern. Die jeweiligen Frames haben also ihre zugeteilte URL. Sofern eine Bedingung erfüllt ist, soll einer der Frames eine andere erhalten.
Hi,
In einem Index-File steht folgendes:
gehen wir doch mal die Datei ganz unvoreingenommen durch, also so, wie der Browser es tut:
<HTML><HEAD>
Aha, ein HTML-Dokument, wie überraschend, und erst mal haben wir den Head. Okay.
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Gut, damit haben wir den verwendeten Zeichensatz.
<meta http-equiv="expires" content="0"><TITLE></TITLE>
Hoppla, dann will ich die Datei gleich mal wieder aus dem Cache löschen. Und als Title nehme ich einen Default. Gut.
<SCRIPT language="JavaScript">
Aha, dann schmeiße ich mal meine JS-Engine an:
alert(parent.frames.length);
Gut, ein Alert-Fenster ausgeben. Was soll denn drinstehen? Mal sehen: parent - haben wir nicht also self. frames - nö, habe ich keine registriert, also ist length klar.
Und so weiter, bis der Browser dann merkt: Hoppla, da sind ja _doch_ Frames!
Merkst Du was? Zu dem Zeitpunkt, wo Du die Zahl der Frames abfragen willst, gibt es noch gar keine. Aus dem gleichen Grund kann man beim MSIE nicht die Breite des Fensters schon im Head herausfinden, denn document.body(.clientWidth) existiert im Head noch nicht.
Cheatah