cy-man: history.forward() mit übergabe einer variable?

hallo!

man kann ja mit history.forward() in den seiten springen - ok. ich möchte nun folgenden erreichen:

wenn in einem frame eine seite neu geladen wird, soll sie der history.forward() funktion, oder wem auch immer, eine variable übergeben, die die nächste seite enthält. diese variable dient dann sozusagen, als "nächste seite" link. ausserdem muss dieser link ausserhalb des frames liegen.

warum so? ich will einfach in diesem frame kein sprungziel auf die nächste seite definieren, weil dort nur texte und bilder stehen sollen - ein link würde stören (layout technisch ;)

geht das überhaupt? wenn ja wie? ...

regz cy

  1. Hallo cy-man,

    ich verstehe zwar dein Anliegen nicht ganz, den um die Funkton history.forward() aufzurifen müssest Du auch einen Link aif deiner Seite einfügen... warum dann nicht gleich einen regulären Link?

    Zu deiner Frage:
    Wenn Du dir den Begriff history.forward() mal genau ansiehst, dann wirst Du feststellen das deine Gedankengänge revlotunär sind. Du kannst nicht in die "Zukunft" springen, da es diese noch nicht gibt (gab?). Erst wenn Du einmal history.back() aufgerufen hast, wirst Du auch history.forward() benutzen können. (Beobachte mal deine Vor- und Zurück-Buttons deines Browsers).

    Gruß
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
    1. hi!

      ich verstehe zwar dein Anliegen nicht ganz, den um die Funkton history.forward() aufzurifen müssest Du auch einen Link
      aif deiner Seite einfügen

      ich will ja insgesamt 4 links haben: history.back(), history.forward(). und dann noch die 2, die ich suche (hoffe zu finden)

      ... warum dann nicht gleich einen regulären Link?

      weil ja jede seite in dem iframe eine andere neue seite hat. und da der link ausserhalb sein soll, kann ich da keinen festen definieren. deshalb soll der link ausserhalb des frames dynamisch sein und immer von der seite aus dem frame die neue seite zugewiesen bekommen.

      nochmal: im frame soll eine seite geladen werden, die einem link (dieser link befindet sich nicht im frame), der jetzt noch als ziel eine variable mit den wert null (nicht 0) enthält, eine variable zuweisen, die den link definiert.

      ablauf:
      1. link externen <a href="$seite" target="frame">
      2. seite xy wird im frame (name="frame") aufgerufen
      3. seite xy übergibt variable $seite ($seite = seite2.htm) an den externen link
      4. externer link ist nun <a href="$seite" target="frame"> oder <a href="seite2.htm" target="frame">, wenn man die varaible ausschreibt

      ist jetzt klar, was ich meine?!

      mir ist die sache mit der history fkt. schon klar ... ;)

      regz cy

      1. moin

        warum definierst du nich einfach außerhalb des iframes ein array, welches die entsprechenden seiten der reihenfolge nach enthält?

        oder du schreibst die ziele in versteckte felder, ob innerhalb oder außerhalb des iframes wär da sogar egal, und list sie dann aus wodurch du dein neues ziel hast

        in der hoffnung dich richtig verstanden zu haben

        gruß

        1. hi!

          oder du schreibst die ziele in versteckte felder, ob innerhalb oder außerhalb des iframes wär da sogar egal,

          das ziel ist ja in jeder seite, die im frame angezeigt wird, anders. da ja auf jede seite eine andere folgt (nicht sequentiell!!).

          ich müsste also die nächste seite als ziel in einem versteckten feld in der aufgerufenen seite definieren und das feld dann ausserhalb des frames als link einlesen lassen.

          und list sie dann aus wodurch du dein neues ziel hast

          genau! und nun die 1000 quizfrage: wie mache ich das?

          cy

          1. also:
            im iframe:
            <input type='hidden' name='ziel' value='ziel.ext'>

            im frame der den iframe enthält:
            <script language=javasript>
            function gehezu()
            {
            document.getElementById('iframename').location.href=parent.frames['iframename'].document.getElementById('ziel').value;
            }

            und dann halt n button mit oder sonstwas mit onclick=gehezu()

            ich habs jetz nich ausprobiert, sollte aber funzen

            gruß

            1. danke! ich versuchs gleich ma ... melde mich dann nochma

              cy-man

            2. so, habs mal versucht. sieht wie folgt aus und will erstmal nicht laufen ... evtl. schreib/schusselfehler ...

              der iframe heisst "rechts"

              seite im iframe enthält irgendwo:
              <input type='hidden' name='ziel' value='zuvieldinst2.htm'>

              seite ausserhalb des iframes enthält:
              .
              .
              .
              <head>
              <script language=javasript>
              function gehezu()
              {
              document.getElementById('rechts').location.href=parent.frames['rechts'].document.getElementById('ziel').value;
              }
              </script>
              </head>
              <body>
              .
              .
              .
              <a href="javascript:gehezu()" target="rechts">test</a>
              .
              .
              .
              </body>

              innerhalb des <body>-tags wird dann auch der iframe erzeugt, is klar.
              ich denke, ich mach da was mit den zielen nicht richtig ... mhhh

              cy

              1. schon gemerkt, bin gerade am werkeln, is denke gleich fertig

                bis gleich

              2. nur für alle fälle, was ich da oben gepostet habe funktioniert ;)

                nich dass du es übersiehst oder so ;)

                gruß

                1. hi!

                  nur für alle fälle, was ich da oben gepostet habe funktioniert ;)

                  schön, dann bin ich zu doof um es auf meine hp zu backen. her nochmal mein gemache:

                  -->
                  der iframe heisst "rechts"

                  seite im iframe enthält irgendwo:
                  <input type='hidden' name='ziel' value='zuvieldinst2.htm'>

                  seite ausserhalb des iframes enthält:
                  .
                  .
                  .
                  <head>
                  <script language=javasript>
                  function gehezu()
                  {
                  document.getElementById('rechts').location.href=parent.frames['rechts'].document.getElementById('ziel').value;
                  }
                  </script>
                  </head>
                  <body>
                  .
                  .
                  .
                  <a href="javascript:gehezu()" target="rechts">test</a>
                  .
                  .
                  .
                  </body>

                  <--

                  nich dass du es übersiehst oder so ;)

                  was?!

                  cy

                  1. heyho

                    da ganz oben unter deinem anfangsthreat ;)

                    in meinem ersten war ein fehler, und unter deinem anfangsthread ha ich das richtige gepostet, damit es hier nich irgentwo unter geht, hab ihm auch einen anderen namen verliehen

                    gruß

                    1. is klar, habs gesehen ... sitz wohl schon wieder zu lange vor dem pc ;)

                      wer ma testen und sach dann bescheid: beschei ;)

                      cy

  2. seite im iframe enthält irgendwo:
    <input type='hidden' name='ziel' value='zuvieldinst2.htm'>

    seite ausserhalb des iframes enthält:
     .
     .
     .
     <head>
     <script language=javasript>
     function gehezu()
     {
     document.getElementById('rechts').src=parent.frames.rechts.document.getElementById('ziel').value;
     }
     </script>
     </head>
     <body>
     .
     .
     .
     <a href="javascript:gehezu()" target="rechts">test</a>
     .
     .
     .
     </body>

    so, sollte funzen, habs probiert, wenn jetz nich noch irgentwo ein tippfehler is ;)

    gruß

    1. noch eine kleine korrektur

      dein link darf kein target=rechts enthalten, das funzt nicht!

      also ohne target

      gruß

      1. will leider nicht laufen

    2. hallo!

      danke erstma für deine mühe!! leider geht's noch immer nicht ...

      habe ma bei selfhtml nachgelesen ...:

      Sie können getElementById() auch Variablen übergeben. Dazu notieren Sie einfach den Variablennamen ohne Anführungszeichen anstatt eines festen Wertes z.B. getElementById(Variablenname). Vorraussetzung ist jedoch, dass die Variable auch existiert. (Greift entsprechend der HTML-Variante des DOM auf ein HTML-Element zu, das ein id-Attribut besitzt.)

      habe also mal folgendes gemacht:

      function gehezu()
       {
       document.getElementById(rechts).src=parent.frames.rechts.document.getElementById(ziel).value;
       }

      das komische ist, der bringt im iframe noch nicht mal die fehlermeldung: datei nicht gefunden oder so. entweder ließt der keine variable ein oder der stellt die nicht dar. auch ein target="_blank" brachte keine seite hervor.

      ich habe bei meinem opera 7.11b mal die javascript debug fkt. eingeschaltet: kommt 'ne menge - sehr viele fehler!

      kannst du mir evtl. mal deine testumgebung (htmls) schicken, mit denen du das getestet hast?! cy-man@bigfoot.de

      danke! für weitere tips immer offen

      cy