Matthias: document.location.href + einer weiteren anweisung

hi,
ich habe eine function an deren anfang folgendes ausgeführt wird:

...document.location.href="test.html";

die neue seite erscheint im rechten frame die danach kommenden
anweisungen die sich auf die neugeladene seite beziehen
werden nicht mehr ausgeführt. ich habe im i-net nur eine er-
klärung für diese problem gefunden. wie kann ich nun direkt
nach dieser anweisung mit dem dokument arbeiten ?

mfg,
matthias

  1. Moin!

    ich habe eine function an deren anfang folgendes ausgeführt wird:

    ...document.location.href="test.html";
    die danach kommenden
    anweisungen die sich auf die neugeladene seite beziehen
    werden nicht mehr ausgeführt.

    Wie auch. Die werden gar nicht mehr gelesen, weil ein anderes Dokument jetzt "das Programm" ist.

    wie kann ich nun direkt nach dieser anweisung mit dem dokument arbeiten ?

    Scheib Sie in das neue Dokument....

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. also, hier ist jetzt etwas genauer:

      function Layer_zeigen(name)
       {

      if ('top.frames[1].location.href!=start.html')
       {
       top.frames[1].location.href="start.html"
       }

      else
       Layer_ausblenden('text','text2','text3');
              top.Text.document.getElementById(name).style.visibility="visible";

      }

      ------------------
      2.html = Ist eine einfache HTML datei
      1.html = Ist eine HTML datei die aus mehreren Layern besteht, wobei immer nur einer sichtbar sein soll bzw. ist.

      Drückt der Benutzer auf den Link mit dem Verweis auf 2.html, so zeigt er diese durch den einfach href- befehl im rechten frame.

      1.html ist von anfang an geladen. Mehre Links beziehen sich auf
      diese Seite und verändern die sichtbaren Layer.

      Ist jedoch die datei 2.html geladen so funktioniert dies nicht mehr,
      da bevor er die layer ändern will die seite 1.html in den frame geladen werden muss.

      1. Moin!

        function Layer_zeigen(name)
        {

        //if ('top.frames[1].location.href!=start.html')

        // so wir das nichts. wenn schon:
        if (top.frames[1].location.href!='start.html')
        // Das vorher war immer "wahr".

        {

        »»// top.frames[1].location.href="start.html"
        top.frames[1].location.href="start.html";
        // Semikolon fehlt.

        } // end if

        // Wenn die start.html nicht als "Mutter" des Framesets geladen wird, dann wird sie geladen. Damit bricht das Skript ab. Sonst:

        //else

        // Es fehlt ein: {
        {

        Layer_ausblenden('text','text2','text3');
        top.Text.document.getElementById(name).style.visibility="visible";

        // Name ist häufig ein gesperrter Begriff. Gewöhne Dir die Verwendung ab.
        //Es fehlt ein: }
        } // end else

        } // end function.

        // Wo sind Deine Fehlermeldungen? Bitte poste das gesamte Skript. Überprüfe es aber vorher mit dem Javascriptdebugger vom Mozilla auf Fehler.
        ich fasse mal zusammen:

        function Layer_zeigen(objektName) {
          if (top.frames[1].location.href!='start.html') {
             top.frames[1].location.href="start.html";
          } else {
             Layer_ausblenden('text','text2','text3');
            top.Text.document.getElementById(objektName).style.visibility="visible";
          }
        }

        function Layer_ausblenden(objektName) {
           top.Text.document.getElementById(objektName).style.visibility="visible";
          }
        }


        2.html = Ist eine einfache HTML datei
        1.html = Ist eine HTML datei die aus mehreren Layern besteht, wobei immer nur einer sichtbar sein soll bzw. ist.

        Passe Deine Beschreibung an die Skriptschnipsel an. Damit kann keiner was anfangen.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
        1. Moin!

          Moin fastix®!

          function Layer_ausblenden(objektName1,objektName2,objektName3) {
            top.Text.document.getElementById(objektName).style.visibility="hidden";
            top.Text.document.getElementById(objektName).style.visibility="hidden";
            top.Text.document.getElementById(objektName).style.visibility="hidden";
          }

          Spaghettycode...

          Besser:
          Aufruf mit:
          Layer_ausblenden("text, text2, text3");

          function Layer_ausblenden (objektListe)
            var arrayObjekte=new Array(objektListe);
            for (i; i< arrayObjekte.length; i++) {
              top.Text.document.getElementById(arrayObjekte[i]).style.visibility="hidden";
            }
          }

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
          1. Moin!

            Moin fastix® (2)! Immer noch Fehler....

            function Layer_ausblenden(objektName1,objektName2,objektName3) {
               top.Text.document.getElementById(objektName1).style.visibility="hidden";
               top.Text.document.getElementById(objektName2).style.visibility="hidden";
               top.Text.document.getElementById(objektName2).style.visibility="hidden";
            }

            Übler Spaghettycode...

            Besser:
             Aufruf mit:
             Layer_ausblenden("text, text2, text3");

            function Layer_ausblenden (objektListe) {
               var arrayObjekte=new Array(objektListe);
               for (i; i< arrayObjekte.length; i++) {
                 top.Text.document.getElementById(arrayObjekte[i]).style.visibility="hidden";
               }
             }

            So. Jetzt geht das auch.

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix®

            --
            Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
            1. Hi,
              erstmal danke für deine umfassende Hilfe.
              Es funktioniert jetzt alles. Der Fehler
              lag darin, dass nicht nur der Dateiname,
              sondern der komplette Pfad zurückgegeben wurde.

              file:\\e:....start.html

              Deine Funktion zum Ausblenden der Layer
              hat Ihre Vorteile und wäre auf jedenfall
              vorzuziehen, wenn Sie funktionieren würde.
              Für meine paar Layer geht es jedoch auch
              direkt.

              MFG,
              Matthias

              1. Moin!

                Funktion zum Ausblenden der Layer
                hat Ihre Vorteile und wäre auf jedenfall
                vorzuziehen, wenn Sie funktionieren würde.
                Für meine paar Layer geht es jedoch auch
                direkt.

                Hm ja. Ich sehe es gerade. Der Array aus der Objektliste muss vorher gestrickt werden:

                Objektliste=new Array("test1","test2","test3");
                ausblenden(Objektliste);

                In der Funktion dann natürlich nicht nochmal einen Array bauen, sondern die Zeile einfach rauslassen und gleich zum Zerlegen übergehen. Die Vorgehensweise hat tatsächlich eine Reihe Vorteile, die sich allerdings erst bei größeren Projekten und bei der Pflege zeigen.

                MFFG (Mit freundlich- friedfertigem Grinsen)

                fastix®

                --
                Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
  2. Moin!

    ich habe eine function an deren anfang folgendes ausgeführt wird:

    ...document.location.href="test.html";

    Es gibt kein "document.location.href". Es gibt window.location.href.

    die neue seite erscheint im rechten frame die danach kommenden
    anweisungen die sich auf die neugeladene seite beziehen
    werden nicht mehr ausgeführt. ich habe im i-net nur eine er-
    klärung für diese problem gefunden. wie kann ich nun direkt
    nach dieser anweisung mit dem dokument arbeiten ?

    Und wie lautet die Erklärung?

    Ich würde vermuten, du hast ein Timing-Problem. Direkt nachdem du die location.href geändert hast, ist nämlich diese Seite noch lange nicht geladen. Das kann bis zu mehreren Minuten dauern, wenn es dumm läuft (und die Seite groß ist).

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)