konsch: 2 Frames ändern (habe schon SelfHTML Quelltext probiert!)

Da ich JavaScript-mäßig nicht fit bin bräuchte ich Hilfe zum Thema 2 Frames gelichzeitig verändern. Ausgehend von dem Beispiel unter

http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm

ist mir nicht klar, wie ich den Quelltext für meine Bedürfnisse ändern muß, um das folgende Ergebnis zu bekommen:

Ich möchte erreichen, dass sich der Frame mit der Navigation (für eine erweiterte Navigation) und - um bei dem SelfHTML Beispiel zu bleiben -  der Frame mit den Schauspielerfotos verändert.

Liegt das an dem "parent" Befehl, dass das so nicht 1 zu 1 zu übernehmen ist oder woran liegt das? Wäre klasse, wenn hier jemand das geänderte Script posten könnte!

Konsch

  1. Hallo,

    http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm

    Liegt das an dem "parent" Befehl, dass das so nicht 1 zu 1 zu übernehmen ist oder woran liegt das?

    parent ist nicht direkt ein Befehl, sondern die Adressierung des Frames, den Du manipulieren möchtest, in diesem Fall der "Eltern"- also der übergeordnete Frame.

    Sprich die Frames statt mit parent z.B. mit den Namen an, die _Du_ in _Deinem_ Frameset vergeben hast.

    Wäre klasse, wenn hier jemand das geänderte Script posten könnte!

    Das wird nicht klappen ;-) Wenn es mit o.g. Hinweisen nicht funktioniert, schreibe uns _hier_ was Du probiert hast (Code) und Dir kann sicher geholfen werden.

    Viel Erfolg!

    Gruss aus Koeln-Ehrenfeld,

    Elya

    --
    "Alle mal an die Nase fassen, und zwar an die eigene": http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482
    _____________
    Wikipedia: Die freie Enzyklopaedie http://de.wikipedia.org
    1. So, habe jetzt mal die entsprechend geänderten Dateien ins Netz gestellt. Deinen Tipp habe ich ausprobiert, da regt sich garnichts.

      Das Ganze findet sich unter www.acm-akustik.de/neu

      Es geht um folgendes wenn Du z.B. den Link "Synchron" anklickst soll gelichzeitig das Untermenü in der Navigation aufgehen, sowie das erste Fenster "Voodoo Lounge" im Haupt-Frame.

      Der Versuch mit dem JavaScript findet sich unter "Musik". Aber - wie gesagt - da passiert garnichts...

      Danke für die Hilfe
      Konsch

      1. Hallo,

        So, habe jetzt mal die entsprechend geänderten Dateien ins Netz gestellt. Deinen Tipp habe ich ausprobiert, da regt sich garnichts.

        Da passiert eine ganze Menge. Ein Tipp zum Fehlerfinden: setze bei Deinem IE mindestens unter Extras/Internetoptionen/Erweitert bei "Scriptfehler anzeigen" das Häkchen.

        Besser: Benutze einen Browser wie Netscape oder Mozilla und dabei die "Javascript-Console" unter Tools/Web-Development. Da gibt es dann eine solche Fehlereldung beim Laden der Seite:

        Error: missing ( before formal parameters
        Source File: http://www.acm-acoustics.de/neu/cremenav.html
        Line: 10, Column: 9
        Source Code:
        function 2frames(URI1,F1,URI2,F2) {
        --------^^

        Schau Dir zu dieser Fehlermeldung mal diesen Lesestoff an:

        http://selfhtml.teamone.de/javascript/sprache/regeln.htm#namen

        dann kommst Du drauf, was da falsch ist. Stichwort: Name der Funktion

        Vielleicht war's das ja schon...ansonsten: Fehler beseitigen, Testen, bei Problemen wieder melden!

        Gruss aus Koeln-Ehrenfeld,

        Elya

        --
        "Alle mal an die Nase fassen, und zwar an die eigene": http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482
        _____________
        Wikipedia: Die freie Enzyklopaedie http://de.wikipedia.org
        1. Hi,

          die Konsole ist am Start, das Script scheint auch in Ordnung. Jetzt bekomme ich aber die Fehlermeldung aus der Zeile, in der sich der Link befindet
          <a href="javascript:zweiframes('samples/musik.html','self','samples/musik/nucleus/frame.html','main')"><b>Musik</b></a>

          Fehler: "zweiframes is not defined"

          Der Name der Funktion in meinem JavaScript ist aber definitiv "zweiframes"!

          <script type="text/javascript">
          <!--
          function zweiframes(URI1,F1,URI2,F2) {
            Frame1=eval("self."+F1);
            Frame2=eval("main."+F2);
            Frame1.location.href = URI1;
            Frame2.location.href = URI2;
          }
          //-->
          </script>

          Was tun sprach Zeus (und ich im übrigen auch)?

          Konsch

          1. Hallo Konsch,

            Fehler: "zweiframes is not defined"

            Der Name der Funktion in meinem JavaScript ist aber definitiv "zweiframes"!

            Also bei mir kommt eine andere Fehlermeldung! 'cnav' is not defined

            <script type="text/javascript">
            <!--
            function zweiframes(URI1,F1,URI2,F2) {
              Frame1=eval("self."+F1);
              Frame2=eval("main."+F2);
              Frame1.location.href = URI1;
              Frame2.location.href = URI2;
            }

            und die Funktion sieht auch etwas anders aus.

            Ich muß mein erstes Posting etwas korrigieren. Mit "parent" hättest du das Elternfenster _des aktuellen framesets_ angesprochen, und mit dem was du in "F1" übrgibst, also z.B. "cnav" den darunterliegenden Frame. Es käme also ein Konstrukt wie "parent.cnav.location.href"  heraus. Du arbeitest aber mit mehreren tief ineinander verschachtelten Framesets. Ich würde mir diesen Satz

            <cite>parent ist ein reservierter Fenstername, den Sie zum Ansprechen von Fenstern innerhalb eines Frame-Sets verwenden können. Anstelle von parent können Sie auch top verwenden. Mit parent sprechen Sie das Eltern-Fenster des aktuellen Frame-Fensters an, mit top in jedem Fall das oberste Anzeigefenster des Browsers.
            </cite>

            einmal anschauen und statt parent (bzw. Dein cnav oder self...) top verwenden. Also

            Frame1=eval("top."+F1);
            Dann müßte rauskommen:
            top.cnav.location.href =
            und das sollte klappen.

            Hilfreich ist auch immer, sich die Werte in Funktionen mit dem Befehl alert(); ausgeben zu lassen, um zu prüfen, was überhaupt in der Funktion ankommt und verarbeitet wird.

            Gruss aus Koeln-Ehrenfeld,

            Elya

            --
            "Alle mal an die Nase fassen, und zwar an die eigene": http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482
            _____________
            Wikipedia: Die freie Enzyklopaedie http://de.wikipedia.org
            1. Sorry, hatte die geänderten Dateien nicht hochgeladen. Der Quelltext in meinem letzten Post war aber der, den ich ausprobiert hatte.

              Jetzt habe ich das Ganze mal so ausprobiert (Dateien sind online):

              <script type="text/javascript">
              <!--
              function zweiframes(URI1,F1,URI2,F2) {
                Frame1=eval("top."+F1);
                Frame2=eval("top."+F2);
                Frame1.location.href = URI1;
                Frame2.location.href = URI2;
              }
              //-->
              </script>

              ...

              <a href="javascript:zweiframes('samples/musik.html','cnav','samples/musik/nucleus/frame.html','main')"><b>Musik</b></a>

              Die JavaScript Konsole bleibt strikt bei der Fehlermeldung: "zweiframes is not defined"

              Der Link ist übrigens in einer Tabelle untergebracht. Stört das bei der Ausführung von einem Script?

              Konsch

              1. Hallo,

                <a href="javascript:zweiframes('samples/musik.html','cnav','samples/musik/nucleus/frame.html','main')"><b>Musik</b></a>

                Die JavaScript Konsole bleibt strikt bei der Fehlermeldung: "zweiframes is not defined"

                Hab grad auch nochmal reingeschaut, probier mal so:
                a href="#" onClick="zweiframes('samples/musik.html','cnav','samples/musik/nucleus/frame.html','main')

                javascript Anweisungen im href sind nicht erwünscht, ich wußte nicht daß Mozilla da so streng ist...

                Gruss aus Koeln-Ehrenfeld,

                Elya

                --
                "Alle mal an die Nase fassen, und zwar an die eigene": http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482
                _____________
                Wikipedia: Die freie Enzyklopaedie http://de.wikipedia.org
                1. Es passiert was! Die Navigation macht jetzt was sie soll und das Untermenü geht auf. Allerdings bekomme ich im Hauptframe die Navigation, die ursprünglich in dem cremfarbenen Frame rechts war, angezeigt!? Dort sollte eigentlich jetzt der "Nucleus" Inhalt erscheinen.

                  Konsch

                  1. Hallo,

                    Es passiert was! Die Navigation macht jetzt was sie soll und das Untermenü geht auf. Allerdings bekomme ich im Hauptframe die Navigation, die ursprünglich in dem cremfarbenen Frame rechts war, angezeigt!? Dort sollte eigentlich jetzt der "Nucleus" Inhalt erscheinen.

                    OK, dann probier mal target="_self" innerhalb des a tags.

                    Das ist alles nicht so ganz sauber; Leute "mit ohne" Javascript kommen mit der Navi bei Dir nicht weiter, aber das Frameset wird man Dir wohl kaum ausreden können, oder?

                    Gruss aus Koeln-Ehrenfeld,

                    Elya

                    --
                    "Alle mal an die Nase fassen, und zwar an die eigene": http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482
                    _____________
                    Wikipedia: Die freie Enzyklopaedie http://de.wikipedia.org
                    1. Super, Danke für die Hilfe!!! Im IE (v6.0) fuktioniert's jetzt. Nur der NC Browser (v7.1) führt das ganze nur alle 10 Klicks richtig aus. Die restlichen Versuche geht nur der "Nucleus-Frame" auf.

                      Hast Du in dem Zusammenhang vielleicht noch ein paar gute Tipps zum ewigen Thema Browser-Komptibilität...?

                      Konsch

                      1. Hallo Konsch,

                        Super, Danke für die Hilfe!!! Im IE (v6.0) fuktioniert's jetzt. Nur der NC Browser (v7.1) führt das ganze nur alle 10 Klicks richtig aus. Die restlichen Versuche geht nur der "Nucleus-Frame" auf.

                        Hast Du in dem Zusammenhang vielleicht noch ein paar gute Tipps zum ewigen Thema Browser-Komptibilität...?

                        Also ich hab das eher im Mozilla (=NN7) getestet, da ging's. Ich empfehle aber auch mal Struppis Lösung zu probieren, er hat recht damit, ich hab gestern seine Lösung im Archiv nicht gefunden. Grundsätzlich solltest Du Dir Gedanken über das Framekonstrukt machen, mit dem Deine Navi abhängig von JS machst.

                        Gruss aus Koeln-Ehrenfeld,

                        Elya

                        --
                        "Alle mal an die Nase fassen, und zwar an die eigene": http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482
                        _____________
                        Wikipedia: Die freie Enzyklopaedie http://de.wikipedia.org
                  2. Bin in dem SelfHTML Artikel zum Ändern von 2 Frames über folgenden Satz gestolpert:

                    "...dass der jeweils zweite Aufruf der Objektmethoden noch mal in ein  setTimeout() mit einer geringen Verzögerung von 1/100 Sekunde gesetzt ist, hat pragmatische Gründe: manche Versionen des Internet Explorers würden ansonsten "vergessen", den zweiten Aufruf durchzuführen..."

                    Kann das sein, dass der NC jetzt das genannte Problem hat? Meine Versuche das Script dahingehend zu ändern sind leider auch wieder fruchtlos geblieben...

                    Gruß
                    Konsch

  2. Da ich JavaScript-mäßig nicht fit bin bräuchte ich Hilfe zum Thema 2 Frames gelichzeitig verändern. Ausgehend von dem Beispiel unter

    http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm

    Das beispiel ist grueselig, nimm es nicht!

    Mach es so:

    <script type="text/javascript"><!--

    function zweiframes(URI1,F1,URI2,F2) {
    top[F1].location.href = URI1;
    top[F2].location.href = URI2;
    }
    //-->
    </script>

    <a href="samples/musik/nucleus/frame.html"
    target="main" onclick="zweiframes('samples/musik.html','cnav',this.href,this.target);return false;"

    Musik</a>

    so können Besucher ohne JS wenigstens noch ein bisschen deine Seite nutzen.

    Struppi.