onload-Event in Frames überwachen
Holger
Hallo,
ich habe ein kleines Problem, zu dem ich leider nirgends einen Hinweis oder gar eine Lösung finde, daher wende ich mich heute an Euch, vielleicht weiß ja jemand, was ich fasch mache, oder wie es anders geht:
Ich möchte in einem Frameset (zwei Fenster übereinander) aus dem oberen Fenster den "Ladezustand" des unteren überwachen. Das heißt, ich möchte das Ereignis "onLoad" des unteren Fensters im oberen auswerten. Mit dem unten aufgeführten Testscript des oberen Fensters kann ich so mit dem Netscape 4.x auch das Ereignis auswerten, d.h. die alert-Funktion wird nach Beendigung des Ladevorganges den unteren Fensters ausgeführt.
Doch beim IE4.x geht das scheinbar nicht. Solange ich "parent.frames[1]" durch "window" ersetze, bekomme ich meine Meldung, daß das obere Fenster geladen wurde, doch ein Zugriff auf das untere ist nicht möglich. Was mache ich falsch??? Hat jemand einen Tip für mich???
(Eventuell wäre auch eine Überwachung aus dem Frameset denkbar, nur kriege ich da beim IE4.x auch kein Ergebnis raus...)
Viele Grüße
Holger
Hier das Testscript für das obere Fenster:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<title>Oben</title>
</head>
<script language="JavaScript">
/* Script für Netscape 4.x */
var Netscape=false;
var bname= navigator.appName.substring(0,8);
var bver = navigator.appVersion.substring(0,1);
if ((bname=="Netscape") && (bver>=4)) { Netscape=true; }
function UnterFrameGeladen(Ereignis){
if(Netscape){ alert('geladen!'); }
}
if (Netscape){ parent.frames[1].onload = UnterFrameGeladen; }
</script>
<script for=parent.frames(1) event=onLoad language="JScript">
/* Script für IE 4.x */
{ alert('geladen!'); }
</script>
<body>
<p>Oberer Frame</p>
</body>
</html>
Hallo,
Lies Dir doch bitte mal den Thread ab http://www.teamone.de/selfaktuell/self_forum/19990316.html#a11015 durch. Da hatte ich eine Antwort auf ein aehnliches Problem geben. Mit ei bisschen Anpassung sollte es fuer Dich auch funzen. Kannst im oberen Frame mit setTimout()/setInterval() periodisch ueberpruefen, ob der untere geladen ist.
Calocybe
Hallo,
Lies Dir doch bitte mal den Thread ab http://www.teamone.de/selfaktuell/self_forum/19990316.html#a11015 durch. Da hatte ich eine Antwort auf ein aehnliches Problem geben. Mit ei bisschen Anpassung sollte es fuer Dich auch funzen. Kannst im oberen Frame mit setTimout()/setInterval() periodisch ueberpruefen, ob der untere geladen ist.
Calocybe
Hallo Calocybe!
Danke für Deinen Tip. nur leider kann ich ihn in meinem Fall nicht anwenden. Ich hätte vielleicht dazuschreiben sollen, daß es sich beim unteren Frame um eine Seite handelt, die ich nicht beeinflussen kann, da hier Rückantworten von cgi-Skripten dargestellt werden sollen. Somit kann ich im unteren Frame auch nichts selbst programieren und eben auch keine Variable setzen, die dann aus dem oberen abgefragt wird.
Trotzdem vielen Dank für Deine Antwort, vielleicht gibt‚s ja noch ne andere Lösung, mir fällt leider zur Zeit keine ein.... :-(