Was ist falsch an diesem kurzen Skript?
badenzer
- javascript
<script language="JavaScript">
<!--
function ladeframenach() {
// frameset nachladen
if(!parent.oben)
location.href="../../index.htm?" + location.pathname;
// methode aufrufen
parent.oben.activate(9,parent.oben.forschungOn);
}
//-->
</script>
dieses Skrip wird unter <body> mit onLoad="ladeframenach();" aufgerufen.
die funktion: Frameset nachladen und dann in diesem nachgeladenen Frameset auf ein Frame zugreifen ("oben") und dort eine Methode aufrufen
Die neueren Browser (Netscape > 4.7, Mozilla, IE 6) machen das, aber der IE 5 weigert sich das auszuführen.... woran mag dies liegen?
mfg badenzer
Hallo,»» <script language="JavaScript">
<!--
function ladeframenach() {
alert(parent.frames[0].location.search
// frameset nachladen
if(parent.frames[0].location.href.indexOf("index")!=-1)//prüft ob index im frame geladen ist
location.href="../../index.htm" +"?"+ location.pathname;
alert(parent.frames[0].location.search // zum Testen
// methode aufrufen
parent.frames[0].activate(9,parent.frames[0].forschungOn);
}
//-->
</script>
Versuch das mal. Sind der Funktion aktivate Variablen als new Object deklariert oder global?
Dann: IE5 Internetoptionen prüfen - gibt es da nicht Konflikte zwischen IE6 und 5.5 ?
Wie betreibst Du die beiden Versionen paralell oder auf verschiednen Systemen ?
Hat der Frame name und id gleichlautend ? name=oben id=oben ?
Michael
Versuch das mal. Sind der Funktion aktivate Variablen als new »» Object deklariert oder global?
also dort als new Obejct. Deswegen auch parent.oben.forschungOn
Dann: IE5 Internetoptionen prüfen - gibt es da nicht Konflikte zwischen IE6 und 5.5 ?
Wie betreibst Du die beiden Versionen paralell oder auf verschiednen Systemen ?
Hat der Frame name und id gleichlautend ? name=oben id=oben ?
"id" kenne ich gar nicht???
Michael
Hi Michael,
werde das mal notieren und ausprobieren. Habe selbst leider kein IE 5, und da man den ja nicht parallel betreiben kann, dauert es noch etwas mit dem Testen...
Aber eine wichtige Info (hatte ich vorhin vergessen):
wenn ich obiges Javascript und die dortigen 2 Aufrufe mal teile und jeweils nur 1 Funktion teste (also entweder: Framenachladen oder Methode ausführen), dann geht es
Meine naive(?) Schlussfolgerung daraus:
der IE5 versucht die Methode activate in einem noch nicht geladenen Frame auszupro. Dann müsste man vielleicht etwas ins Skript einbauen, dass den Browser sol lange mit dem Methodenaufruf warten lässt, bis auch wirklich das Frame (oben) geladen ist.
seltsam,
wenn ich anstatt
location.href="../../index.htm?" + location.pathname;
parent.frames['oben'].activate(9, parent.frames['oben'].forschungOn);
folgendes verwende:
location.href="../../index.htm?" + location.pathname;
if(parent.oben)
parent.frames['oben'].activate(9, parent.frames['oben'].forschungOn);
scheint es zu klappen....
obwohl das nicht so arg viel sinn macht