Bodo Piening: Frames nachladen: Fehler in Beispiel

Hallo zusammen,

Frame nachladen die xxxx'ste.
Bevor ich mich ans Forum wende, habe ich mich wirklich bemüht erst mal zu rechieren; hat aber mein Problem nicht gelöst:

Möchte für eine aufgerufene Seite das dazugehörige Framesez nachladen.
Habe das Beispiel unter http://www.teamone.de/selfaktuell/artikel/javascript/dyn-frames/index.htm genutzt.
Frameset-Code ist wie folgt:
<script language="JavaScript">
var Adressanhang=location.search;
if(Adressanhang) {
 frames.main.location.href=Adressanhang.substring(1,Adressanhang.length);
}
</script>
</head>

<frameset framespacing="0" border="false" frameborder="0" rows="47,*">
  <frame name="nav" scrolling="no" noresize target="main" src="menu.htm" marginheight="0"
  marginwidth="0">
  <frameset cols="220,*">
    <frame name="inhalt" target="main" scrolling="auto" src="inhalt.htm" noresize>
    <frame name="main" scrolling="auto" src="haupt.htm" noresize>
  </frameset>
  <noframes>
  <body>
  <p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
  </body>
  </noframes>
</frameset>
</html>

Beim Laden (IE5) kommt jedoch immer die Fehlermeldung
"Frames.main.location ist kein Objekt"
Habe schon mit "Top", Frames[2] etc. rumprobiert, hat alles nicht gebracht.

Was mache ich falsch ?????

  1. hi,

    frames.main.location.href=Adressanhang.substring(1,Adressanhang.length);

    probiers mal mit 'top.main.location.href="..."'

    hth

    Grüße Joachim

    1. probiers mal mit 'top.main.location.href="..."'

      Hi Joachim,

      hab's probiert; gleiche Fehlermedlung
      "top.main.location' ist kein Objekt"

      andere vorschläge ?????????????

      Gruß Bodo

      1. hi,

        hab's probiert; gleiche Fehlermedlung
        "top.main.location' ist kein Objekt"

        Du willst dem Frame eine url zuweisen, _bevor_ er überhaupt existiert!
        Afaik war diese selfhtml-Nachladefunktion nur fuer die defaultseiten geeignet...

        Wenn Du eine Wunschurl ins frameset laden willst, musst Du das entweder während der Laufzeit
        dynamisch ins frameset reinschreiben, oder aber nach dem Laden des framesets
        immer wieder überprüfen ob:

        1. main vorhanden ist,
        2. location.href der Wunschurl entspricht.

        falls 1 = true aber 2 = false, dann nachladen.

        so eine Überprüfung machst Du mit setTimeout, und lässt sie so lange laufen,
        bis Deine Wunschurl geladen wurde:

        hier gibt es noch mehr info:

        http://www.netz-notizen.de/javascript/tipps/frame_set.htm

        hth

        Grüße Joachim

        1. Hi,

          Du willst dem Frame eine url zuweisen, _bevor_ er überhaupt existiert!

          Leuchtet mir ein, aber bei der Umsetzung hapert's.

          Wenn ich das Javascript in eine Funktion schreibe und diese dann mit onload im Frameset aufrufe, bekomme ich die gleiche Fehlermeldung.

          Kannst Du mir das mit der Time-Funktion mal verklickern ?

          Gruß Bodo

          1. hi,

            Wenn ich das Javascript in eine Funktion schreibe und diese dann mit onload im Frameset aufrufe, bekomme ich die gleiche Fehlermeldung.

            hab was für Dich, ruf das mal so auf:
            'xyz.html?WunschUrl.html'

            hth

            Grüße  Joachim

            xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

            <html>
            <head>

            <script language="JavaScript1.2">

            // searchstrings durchsuchen
            var passed = location.search.substring(1);

            // neue url entsprechend query aufrufen
            function goForIt() {
                if(passed.length > 0) {
                    content.location.replace(passed);
                }
            }

            </script>

            </head>

            <frameset  rows="*,100" frameborder="0" framespacing="0" border="0" onload="goForIt();">
                    <frame name="content" src="eins.html"
                            marginwidth="0" marginheight="0" scrolling="auto" noresize frameborder="no">
                    <frame name="bottom"  src="zwei.html"
                            marginwidth="0" marginheight="0" scrolling="no" noresize frameborder="no">
            </frameset>

            </html>

            1. Hi Joachim,

              hab was für Dich, ruf das mal so auf:
              'xyz.html?WunschUrl.html'

              Sorry, daß ich erst jetzt antworte, war wg. anderen Sachen unterwegs.
              Der Fehler hat sich mittlerweile aufgklärt;

              und zwar lag die fehlermeldung daran, daß ich im oberen Frame ein Javascript Menü einsetzte, daß mit DHTML die Seite im Hauptframe manipuliert, damit das Menu dort (im fremden Frame) aufklappen kann.

              Ohne das menü funktioniert alles tadellos.
              Jetzt muß ich nur noch die Sache mit dem nachladen integrieren (stöhn).

              Vielen Dank für deine Unterstützung.

              gruß Bodo

  2. Hallo,

    <script language="JavaScript">
    var Adressanhang=location.search;
    if(Adressanhang) {
    frames.main.location.href=Adressanhang.substring(1,Adressanhang.length);
    }
    </script>
    </head>

    <frameset framespacing="0" border="false" frameborder="0" rows="47,*">

    [...]

    Beim Laden (IE5) kommt jedoch immer die Fehlermeldung
    "Frames.main.location ist kein Objekt"

    Du versuchst auf die Frames per Javascript zuzugreifen, _bevor_ sie definiert wurden.

    Grüße
      Klaus