badenzer: Was ist falsch an diesem kurzen Skript?

<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

  1. 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

    --
    Hier bin ich Mensch, hier schreib ich rein
    1. 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.

      1. 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