Hans Delfs: Cookies und Frames

Beitrag lesen

Ich habe ein Problem mit Javascripts in einem Frame-Design. Ich habe das Problem sehr vereinfacht in zwei Dateien:

Erste Datei: x.htm:
<HTML>
<HEAD><SCRIPT language="javascript">
<!--
var x = 'A';
function modify()
{
 x = x + 'B';
 alert(x);
}
//-->
</SCRIPT></HEAD>
<!-- <FRAMESET COLS="50%,50%">
<FRAME SRC="y.htm" NAME="Links">
<FRAME SRC="z.htm" NAME="Rechts">
</FRAMESET> -->
<BODY onLoad="modify()"></Body>
</HTML>

Dabei ist zu beachten, daß das ganze Frameset in Kommentarzeichen steht, also nicht wirksam ist.
Wird die Datei geladen, dann kommt die Alertbox wie vorgesehen mit "AB". Die onload-Funktion arbeitet also richtig.

Jetzt entfernt man die Kommentarzeichen um das Frameset und lädt in die beiden Frames als z.htm eine leere Dummydatei und als y.htm die Datei:

<HTML>
<HEAD><SCRIPT language="javascript">
<!--
function readx()
{
 alert(parent.x);
}
//-->
</SCRIPT></HEAD>
<BODY onUnload="readx()"></BODY>
</HTML>

Lädt man jetzt x.htm, so erscheint keine Meldung. Beim Aktualisieren (unload) holt sich die Frame-Datei y.htm den Wert von x aus der parent-Datei und meldet ihn mit "A". Demnach ist in der parent-Datei beim Laden die Funktion modify, die onload gestartet wird, nicht abgelaufen. Warum?