Tom Kruse: Wer kennt eine Funktion, die wie ein Webbrowser die jeweiligen Vor- und Zurückbu

Hallo liebe Leute,

wünsche "Frohe Ostern" gehabt zu haben.

Wir alle kennen das: Beginne ich mein browsen mit einer Startpage, sind die beiden Buttons Vor und Zurück im Browser inaktiv.

Gehe ich eine Seite "vor", kann ich den Zurück Button nutzen - benutze ich ihn, kann ich danach den Vor Button nutzen.

Nun meine Frage:

Ich möchte eine ähnliche Funktion in meine Page einbauen. Und zwar so, daß die Buttons erst dann zu sehen sind, meinetwegen als Text- oder Grafiklink, wenn sie auch erst gebraucht werden würden (wie beim Browser). Mit den Befehlen history.back und history.forward ist es kein Problem. Allerdings werden diese Befehle schon von Anfang an angezeigt (auch wenn sie noch nicht aktiv sind). Und mein Bestreben ist es, sie so lange unsichtbar zu lassen, bis die History das eben zu läßt. Auch, wenn man tiefer in der Page beginnt.

In meiner Laienhaftigkeit kann ich mir eine If...else... Fuktion vorstellen. Allerdings weiß ich den Befehl bzgl. des Auslesens der History nicht.

Vielleicht ist so eine Frage schon einmal gepostet worden. Ich habe auch im Archiv nachgeschaut. Allerdings nichts gefunden, speziell auf meine Frage hin. Vielleicht hat einer eine Idee oder kann mir, wenn vorhanden, die Antwort zuposten?

Wenn ja, gibt es ein Unterschied zwischen MSIE und NS?

Schon mal vielen Dank im Voraus

Tom

  1. Hi,

    Ich möchte eine ähnliche Funktion in meine Page einbauen. Und zwar so, daß die Buttons erst dann zu sehen sind, meinetwegen als Text- oder Grafiklink, wenn sie auch erst gebraucht werden würden (wie beim Browser).

    warum läßt Du nicht einfach die entsprechenden Navigationsbuttons des Browsers? Die beherrschen exakt die von Dir gewünschte Funktionalität und haben den unschätzbaren Vorteil, daß sich Deine Besucher nicht erst an sie gewöhnen müssen.

    Allerdings weiß ich den Befehl bzgl. des Auslesens der History nicht.

    Kein Wunder, den gibt es nämlich nicht. Die History ist tabu. Du kannst gerade mal den aktuellen Eintrag verändern (location.replace()) und eben übliche Browserfunktionen simulieren. Alles andere ist auch nicht Dein Bier.

    Wenn ja, gibt es ein Unterschied zwischen MSIE und NS?

    Ich hoffe nicht, denn das würde bedeuten, daß einer von beiden ein Sicherheitsloch hat, das so groß ist, daß man mit einem Düsenjet durchfliegen kann.

    Und zwar mit einem, der auf einem Flugzeugträger geparkt ist.

    Und jetzt schreibst Du einhundert mal: Die History ist tabu :-)

    Cheatah

    1. Hi Cheatah,

      danke schön. Ich sehe allerdings kein Sicherheitsloch, wenn ich nur abfragen will, ob die History ein Vorwärts oder ein Rückwärts gespeichert hat. Ohne zu wissen, um welchen Inhalt es geht.

      Der Grund meiner Grage ist der: Ich habe ein neues Fenster ohne Menü, Statusleiste oder ähnliches aufgemacht. Einfach nur ein Fenster deshalb, weil es einfach schöner aussieht (ok ok, ich habe die Diskussion bzgl. der Schönheit und der Funktionalität mitverfolgt...).In diesem neuen Fenster/der neuen Page sind weitere Links, die dann auch in diesem Fenster angezeigt werden. Sie dienen aber nur zu Information. Nun soll der Besucher wieder zurück zu "Urpage" dieses Fensters zurück gelangen können.

      Aber gut, wenn die History tabu ist:

      Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu :-)

      Gruß

      Tom

      1. Hi,

        Der Grund meiner Grage ist der: Ich habe ein neues Fenster ohne Menü, Statusleiste oder ähnliches
        aufgemacht. Einfach nur ein Fenster deshalb, weil es einfach schöner aussieht (ok ok, ich habe die
        Diskussion bzgl. der Schönheit und der Funktionalität mitverfolgt...).In diesem neuen Fenster/der
        neuen Page sind weitere Links, die dann auch in diesem Fenster angezeigt werden. Sie dienen aber
        nur zu Information. Nun soll der Besucher wieder zurück zu "Urpage" dieses Fensters zurück gelangen
        können.

        So wird der Surfer von heute unterdrückt *g*

        Aber gut, wenn die History tabu ist:

        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu Die History ist tabu
        Die History ist tabu Die History ist tabu :-)

        Das sind aber nur 96 ,) da fehlen 4 *g* Und Cut-'nd-Paste gilt auch nicht, bäh! *g*

        mfg
        CK1

        1. Die letzten 4 muß irgendwie meine History geschluckt haben.....grins...

        2. Das sind aber nur 96 ,) da fehlen 4 *g* Und Cut-'nd-Paste gilt auch nicht, bäh! *g*

          Hallo CK1
          du mußt dich verzählt haben, das sind 92 :-))

          1. Hi,

            du mußt dich verzählt haben, das sind 92 :-))

            also, ich rechne mal öffentlich: 19 Zeilen a 5 Einträgen = 19 * 5 = 95 (Windows-Taschenrechner hats
            bestätigt ,) )

            Dann noch eine Zeile mit einem Eintrag = 95 + 1 = 96

            für mich sind es 96 Zeilen *g*

            mfg
            CK1

      2. Hi,

        danke schön. Ich sehe allerdings kein Sicherheitsloch, wenn ich nur abfragen will, ob die History ein Vorwärts oder ein Rückwärts gespeichert hat. Ohne zu wissen, um welchen Inhalt es geht.

        es handelt sich um das Surfverhalten Deines Besuchers über Deine Seiten hinaus; Du könntest Dinge erfahren, die Dich und Deine Site schlichtweg nichts angehen. Natürlich ist das nicht ganz so gefährlich, wie die eMail-Adresse irgendwie rausfinden zu können, aber immerhin.

        Der Grund meiner Grage ist der: Ich habe ein neues Fenster ohne Menü, Statusleiste oder ähnliches aufgemacht. Einfach nur ein Fenster deshalb, weil es einfach schöner aussieht (ok ok, ich habe die Diskussion bzgl. der Schönheit und der Funktionalität mitverfolgt...).

        Na, wenn Du die Diskussion kennst, brauch ich da jetzt ja auch nichts zu zu sagen :-)
        Ich persönlich bin jedenfalls immer geneigt, ein fremdes Fenster (eines, das nicht wie über <rechte Maustaste>+<Open In New Window> geöffnet aussieht) möglichst schnell zu schließen. Es sieht für mich nämlich nicht wie eine neue Browserinstanz aus, sondern wie irgendeine manipulative Bevormundung, mehr oder weniger wie ein Werbefenster.

        Aber gut, wenn die History tabu ist:

        [schnipp]

        Ich hätte noch erwähnen sollen, daß der Einsatz von Copy&Paste nachgewiesen werden kann ;-)

        Cheatah

        1. Hallo Cheatah

          danke schön. Ich sehe allerdings kein Sicherheitsloch, wenn ich nur abfragen will, ob die History ein Vorwärts oder ein Rückwärts gespeichert hat. Ohne zu wissen, um welchen Inhalt es geht.

          es handelt sich um das Surfverhalten Deines Besuchers über Deine Seiten hinaus; Du könntest Dinge erfahren, die Dich und Deine Site schlichtweg nichts angehen. Natürlich ist das nicht ganz so gefährlich, wie die eMail-Adresse irgendwie rausfinden zu können, aber immerhin.

          Er will ja nicht abfragen, was in der history steht, sondern ob der befehl history.back() bzw. history.forward() überhaupt sinn macht.

          Der Grund meiner Grage ist der: Ich habe ein neues Fenster ohne Menü, Statusleiste oder ähnliches aufgemacht. Einfach nur ein Fenster deshalb, weil es einfach schöner aussieht (ok ok, ich habe die Diskussion bzgl. der Schönheit und der Funktionalität mitverfolgt...).

          Na, wenn Du die Diskussion kennst, brauch ich da jetzt ja auch nichts zu zu sagen :-)
          Ich persönlich bin jedenfalls immer geneigt, ein fremdes Fenster (eines, das nicht wie über <rechte Maustaste>+<Open In New Window> geöffnet aussieht) möglichst schnell zu schließen. Es sieht für mich nämlich nicht wie eine neue Browserinstanz aus, sondern wie irgendeine manipulative Bevormundung, mehr oder weniger wie ein Werbefenster.

          Schade das du den SELFHTML-Newsticker nicht ließt...

          Tschüs

          Daniel

  2. Hi,

    wünsche "Frohe Ostern" gehabt zu haben.

    Danke, hatte ich ,)

    Ich möchte eine ähnliche Funktion in meine Page einbauen. Und zwar so, daß die Buttons erst dann

    »»  zu sehen sind, meinetwegen als Text- oder Grafiklink, wenn sie auch erst gebraucht werden würden
    »»  (wie beim Browser). Mit den Befehlen history.back und history.forward ist es kein Problem. Allerdings
    »»  werden diese Befehle schon von Anfang an angezeigt (auch wenn sie noch nicht aktiv sind). Und mein
    »»  Bestreben ist es, sie so lange unsichtbar zu lassen, bis die History das eben zu läßt. Auch, wenn
    »»  man tiefer in der Page beginnt.

    versuchs doch mal so:

    <script language="JavaScript">
    <!-- verstecken
    var aktuell = 0;
    var timeout = 0;

    function vor_zurueck_ja_nein()
      {
      if (window.history.length != 0)
       {
       document.button_layer.write("<a href='JavaScript:zurueck()'>zurück</a>
       timeout = 1;
       }

    if(timeout == 0)
       {
       aktiv = window.setTimeout("vor_zurueck_ja_nein()",100);
       }
      }

    function vor()
      {
      aktuell++;
      window.history.forward();
      }

    function zurueck()
      {
      aktuell--;
      window.history.back();
      }

    // -->
    </script>

    ist zwar nicht getestet, sollte aber laufen ,)

    mfg
    CK1

    1. Hallo CK1

      irgendwie sehe ich den Sinn in der Variable aktuell nicht. Du in- und dekrementierst sie zwar ganz wild aber benutzt wird der Wert nirgendwo.
      Könntest du evt. noch etwas übersehen haben?

      MfG Henryk

      1. Hi,

        Könntest du evt. noch etwas übersehen haben?

        urghs, verdammt ,) hab tatsächlich was vergessen *g*

        <script language="JavaScript">
        <!-- verstecken
        var aktuell = 0;
        var timeout = 0;

        function vor_zurueck_ja_nein()
          {
          if (window.history.length != 0)
           {
           document.button_layer.write("<a href='JavaScript:zurueck()'>zurück</a>");
           document.button_layer.write("vor");
           timeout = 1;
           }

        if(timeout == 0)
           {
           aktiv = window.setTimeout("vor_zurueck_ja_nein()",100);
           }
          }

        function vor()
          {
          aktuell++;
          window.history.forward();

        if(aktuell < window.history.length)
           {
           document.button_layer.write("<a href='JavaScript:zurueck();'>zurück</a>");
           document.button_layer.write("<a href='JavaScript:vor();'>vor</a>");
           } else {
           document.button_layer.write("<a href='JavaScript:zurueck()'>zurück</a>");
           document.button_layer.write("vor");
           }
          }

        function zurueck()
          {
          aktuell--;
          window.history.back();

        if(aktuell > 0)
           {
           document.button_layer.write("<a href='JavaScript:zurueck()'>zurück</a>");
           document.button_layer.write("<a href='JavaScript:vor();'>vor</a>");
           } else {
           document.button_layer.write("zurück");
           document.button_layer.write("<a href='JavaScript:vor();'>vor</a>");
           }
          }

        // -->
        </script>

        aktuell wird eben benutzt, um festzustellen, ob vor() oder zurueck() aktiviert oder deaktiviert werden muß.

        Das Script läßt sich natürlich noch optimieren, indem man nur dann den Layer verändert, wenn es
        auch nötig ist, aber so auf die Schnelle hab ich da keine Lust dran ,)

        mfg
        CK1

        1. Hallo CK1

          Also dein Script kommt mir gelinde gesagt etwas Spanisch vor.

          <script language="JavaScript">
          <!-- verstecken
          var aktuell = 0;
          var timeout = 0;

          function vor_zurueck_ja_nein()
            {
            if (window.history.length != 0)

          Kann garnicht 0 sein, denn wenn eine seite geladen wurde (die mit dem JavaScript) ist sie 1

          {
             document.button_layer.write("<a href='JavaScript:zurueck()'>zurück</a>");

          Wiso denn in einen Layer reinschreiben? Die größe der History wird sich sowiso nicht ändern.

          document.button_layer.write("vor");
             timeout = 1;
             }

          if(timeout == 0)
             {
             aktiv = window.setTimeout("vor_zurueck_ja_nein()",100);

          Warum den nach 1/10 sek nochmal?

          }
            }

          function vor()
            {
            aktuell++;
            window.history.forward();

          So nun hat du die seite gewechselt? Was machst du denn da noch weiter?

          if(aktuell < window.history.length)
             {
             document.button_layer.write("<a href='JavaScript:zurueck();'>zurück</a>");
             document.button_layer.write("<a href='JavaScript:vor();'>vor</a>");
             } else {
             document.button_layer.write("<a href='JavaScript:zurueck()'>zurück</a>");
             document.button_layer.write("vor");
             }
            }

          function zurueck()
            {
            aktuell--;
            window.history.back();

          if(aktuell > 0)
             {
             document.button_layer.write("<a href='JavaScript:zurueck()'>zurück</a>");
             document.button_layer.write("<a href='JavaScript:vor();'>vor</a>");
             } else {
             document.button_layer.write("zurück");
             document.button_layer.write("<a href='JavaScript:vor();'>vor</a>");
             }
            }

          // -->
          </script>

          aktuell wird eben benutzt, um festzustellen, ob vor() oder zurueck() aktiviert oder deaktiviert werden muß.

          Hm nur schade das es mit jedem seitenwechsel gelöscht wird

          So, nachdem ich dein Script richtig durch den Dreck gezogen habe, kommt nun meine lösung:
          Das script muß in jeder seite stehn, die in das fenster geladen werden kann.
          Außerdem gibt es probleme, wenn de User doch noch irgendwie via browser an die vor und zurück funktion kommt

          <HTML>
          <HEAD>
          <TITLE>1</TITLE>
          <SCRIPT>
          function vorwarts()
          {
          window.name = aktuell + 1;
          history.forward();
          }

          function zuruck()
          {
          window.name = aktuell - 1;
          history.back();
          }
          </SCRIPT>
          </HEAD>
          <BODY>
          <SCRIPT>
          alert(window.name);
          var aktuell = window.name;
          window.name = "null";
          if(aktuell >= 1)
          {

          }
          else
          {
          aktuell = window.history.length;
          }
          if(window.history.length != 1)
          {
          if(aktuell == window.history.length)
          {
            document.write("<A href='javascript:zuruck()'>Zurück</A>Vorwärts");
          }
          if(aktuell == 1)
          {
            document.write("Zurück<A href='javascript:vorwarts()'>Vorwärts</A>");
          }
          if(aktuell != window.history.length && aktuell != 1)
          {
            document.write("<A href='javascript:zuruck()'>Zurück</A><A href='javascript:vorwarts()'>Vorwärts</A>");
          }
          }
          else
          {
          document.write("ZurückVorwärts");
          }
          </SCRIPT>
          <BR>
          <A href="test2.html">2</A>
          </BODY>
          </HTML>

          Tschüs

          Daniel