Linuchs: Seite blättern im iframe

problematische Seite

Moin,

habe hier einen verblüffenden Effekt. Im iframe werden Veranstaltungstermine angezeigt. Nun scrolle ich runter und kann unten auf die Schaltfläche nächste Seite 2 klicken.

Die erscheint auch, aber - da die parent-Seite nichts mitbekommt - ich schaue auf das Ende der Seite 2 anstatt auf den Anfang.

Gibt's da eine Möglichkeit, innerhalb des iframe auf den Anfang zu positionieren?

Linuchs

  1. problematische Seite

    Hi,

    habe hier einen verblüffenden Effekt. Im iframe werden Veranstaltungstermine angezeigt. Nun scrolle ich runter und kann unten auf die Schaltfläche nächste Seite 2 klicken.

    Die erscheint auch, aber - da die parent-Seite nichts mitbekommt - ich schaue auf das Ende der Seite 2 anstatt auf den Anfang.

    Gibt's da eine Möglichkeit, innerhalb des iframe auf den Anfang zu positionieren?

    ja, verzichte auf die Spielerei, mit Javascript die Höhe des Elternfensters anpassen zu wollen. Tut man das nämlich nicht (z.B. weil Javascript deaktiviert ist), verhält sich das Seiten-Gefüge ganz normal: Man scrollt im iframe nach unten, klickt auf den Next-Page-Button, die nächste Seite wird geladen und steht, wie erwartet, am Seitenanfang.

    Ich dachte deshalb zunächst, das von dir beschriebene Verhalten könnte browserspezifisch sein und hab's stattdessen mal im Firefox versucht (der darf Javascript). Und da irritierte mich, dass der Scrollbalken des iframe plötzlich verschwand, als der iframe-Inhalt fertig geladen war, dafür hatte des Elterndokument plötzlich einen.

    Und dann passiert genau das, was du beschrieben hast. Im iframe wird ein neues Dokument geladen, das Elterndokument kriegt davon aber nichts mit und bleibt an seiner momentanen Scroll-Position (ganz unten) stehen.

    Mögliche Abhilfe:

    a) Wie schon beschrieben, die Höhenanpassung weglassen. Und wenn man sie schon macht, müsste man sie nach jedem Laden einer neuen Seite im iframe erneut machen, weil die Höhe der Dokumente im iframe immer unterschiedlich ist.
    b) Nach dem Laden des Dokuments im iframe (z.B. als Reaktion auf das load-Event im iframe) die Scroll-Position des Elternfensters wieder auf 0 setzen.
    c) Auf die Teilung der Inhalte ganz verzeichten und die Einbettung serverseitig vornehmen, anstatt per iframe. Das wäre für mich die bevorzugte Lösung.

    Schönen Sonntag noch,
     Martin

    --
    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
    1. problematische Seite

      Hallo Martin,

      danke für deinen Test und den ausführlichen Rat.

      a) ... Und wenn man sie schon macht, müsste man sie nach jedem Laden einer neuen Seite im iframe erneut machen, weil die Höhe der Dokumente im iframe immer unterschiedlich ist.

      Gerne. Aber die Höhen-Anpassung muss vom parent gemacht werden, so weit ich weiss. Wie erfährt parent vom Neuladen einer Seite in seinem iframe?

      b) Nach dem Laden des Dokuments im iframe (z.B. als Reaktion auf das load-Event im iframe) die Scroll-Position des Elternfensters wieder auf 0 setzen.

      ja, des Elternfensters. Frage wie bei a). Habe der Seite im iframe dieses unten angehängt:

      <p><a href="#top">nach oben</a></p>
      

      Bei Klick bewegt sich gar nichts. Ohne Klick natürlich auch nicht ;-)

      c) Auf die Teilung der Inhalte ganz verzeichten und die Einbettung serverseitig vornehmen, anstatt per iframe. Das wäre für mich die bevorzugte Lösung.

      Ja, eine zweite Lösung. Auf den iframe kann ich nicht verzichten für Domains ohne PHP.

      Und ob die "üblichen" Vereins-Webmaster in PHP eingreifen können, ist auch noch die Frage.

      Linuchs

      1. problematische Seite

        Hi,

        a) ... Und wenn man sie schon macht, müsste man sie nach jedem Laden einer neuen Seite im iframe erneut machen, weil die Höhe der Dokumente im iframe immer unterschiedlich ist.

        Gerne. Aber die Höhen-Anpassung muss vom parent gemacht werden, so weit ich weiss.

        muss sie das wirklich? Meines Wissens kann man über die parent-Eigenschaft des window-Objekts auf das übergeordnete Fenster zugreifen und so Funktionen aufrufen, die dort definiert sind. In einem "echten" Frameset habe ich das sogar selbst schon gemacht, ist aber lange her.

        Wie erfährt parent vom Neuladen einer Seite in seinem iframe?

        Indem iframe sich bei ihm meldet, wie oben angedeutet.

        b) Nach dem Laden des Dokuments im iframe (z.B. als Reaktion auf das load-Event im iframe) die Scroll-Position des Elternfensters wieder auf 0 setzen.

        ja, des Elternfensters. Frage wie bei a).

        Antwort wie bei a). ;-)

        Habe der Seite im iframe dieses unten angehängt:

        <p><a href="#top">nach oben</a></p>
        

        Bei Klick bewegt sich gar nichts.

        Natürlich nicht. Das im iframe angezeigte Dokument ist ja innerhalb des iframes schon an der top-Position. Es ist das Elternfenster, das nach unten gescrollt ist. Den Link zu "#top" oder auch nur "#" müsstest du also im Elternfenster direkt unterhalb des iframes notieren.

        Ohne Klick natürlich auch nicht ;-)

        Ach was. Wer hätte das gedacht ... *grins*

        So long,
         Martin

        --
        Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
        - Douglas Adams, The Hitchhiker's Guide To The Galaxy
      2. problematische Seite

        c) Auf die Teilung der Inhalte ganz verzeichten und die Einbettung serverseitig vornehmen, anstatt per iframe. Das wäre für mich die bevorzugte Lösung.

        Ja, eine zweite Lösung. Auf den iframe kann ich nicht verzichten für Domains ohne PHP.

        Ein Webserver mit PHP kostet heutzutage nichts mehr. Die eingesparten Kosten dürften zudem von den Arbeitskosten, die anfallen nur um die Nachteile der <iframe>-Lösung im akzeptablen Bereich zu halten, um ein Vielfaches übertroffen werden. Und das Ergebnis wird trotzdem um ein Vielfaches schlechter sein. Mein gut gemeinter Rat: Erspar dir diesen Höllenritt.

  2. problematische Seite

    Hallo und guten Tag,

    Moin,

    habe hier einen verblüffenden Effekt. Im iframe werden Veranstaltungstermine angezeigt. Nun scrolle ich runter und kann unten auf die Schaltfläche nächste Seite 2 klicken.

    Die erscheint auch, aber - da die parent-Seite nichts mitbekommt - ich schaue auf das Ende der Seite 2 anstatt auf den Anfang.

    Gibt's da eine Möglichkeit, innerhalb des iframe auf den Anfang zu positionieren?

    Linuchs

    Die einfachste Lösung wäre es, die Hauptseite mit Parameter neu aufzurufen und die gibt den dan an ihr I-Frame weiter. Dazu muss der Link im I-Frame dann ein Target-Attribut haben auf Parent oder Top. Damit auch der Cache mitspielt, kannst Du noch einen Dummy-Parameter hinzufügen Lassen, vorzugsweise &time=$timestamp

    Grüße
    TS

    --
    es wachse der Freifunk
    http://freifunk-oberharz.de
    1. problematische Seite

      Damit auch der Cache mitspielt, kannst Du noch einen Dummy-Parameter hinzufügen Lassen, vorzugsweise &time=$timestamp

      Auf diese Weise lässt du den Cache aber gerade nicht mitspielen. Cache-Invalidation ist zugegebenermaßen ein schwieriges Problem, leider sind Caches aber für die Performance unerlässlich, der vollständige Verzicht ist also nur eine unbefriedigende Lösung...

      1. problematische Seite

        Hallo 1unitedpower,

        Cache-Invalidation ist zugegebenermaßen ein schwieriges Problem, [...]

        Mein Favorit ist da übrigens ganz klar No 2: „there are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.“ ;-)

        LG,
        CK

      2. problematische Seite

        Hallo und guten Tag,

        Damit auch der Cache mitspielt, kannst Du noch einen Dummy-Parameter hinzufügen Lassen, vorzugsweise &time=$timestamp

        Auf diese Weise lässt du den Cache aber gerade nicht mitspielen.

        Klar, das war der Sinn der Übung!
        Da die Rahmenseite nur ein paar Bytes HTML hat, wohl kaum ein Problem. Ihre Subrequests (Bilder, Objekte, usw.) sind davon ja nicht betroffen. Die werden weiterhin cached!

        Cache-Invalidation ist zugegebenermaßen ein schwieriges Problem, leider sind Caches aber für die Performance unerlässlich, der vollständige Verzicht ist also nur eine unbefriedigende Lösung...

        Und nun noch eine Bitte @1unitedpower und @Christian Kruse:

        Ich bin jetzt absichtlich ca. ein Jahr ausgestiegen und daher nicht mehr im Kontext. Ich fühle mich also ungefähr so, wie ein rudimentär vorgebildeter Mitleser des Forums. Und ich fühle mich damit beschissen in Bezug auf die gewälten sogenannten Fachbegriffe udn auch auf die hingeschmissenen Links. Diese Knappheit vergällt einem das Forum!

        Ich habe es anders herum auch versucht, damit Ihr einen Spiegel habt für Euer Verhalten. Ich habe dem Martin auf seine Frage, ob ich das näher erläutern möge, "nö" geantwortet. Dafür habe ich Minuspunkte kassiert. Klar, die Karikatur eures Verhaltens ist Euch dann doch noch aufgefallen!

        **Also bitte in Zufunkt etwas expliziter! **

        Und ja, ich will das beim Offline-Treffen diskutieren! Eigens dafür kratze ich zur Not meine allerletzten Euros zusammen!

        Und nein! Es ist nicht böse gemeint. Ich finde nur, dass die Sprechweise im Forum wieder auf eine allgemeinverständliche Plattform zurückkommen muss. Davon sind "Spezialistenthreads" vielleicht auszunehmen. Vielleiocht sollten wir die dann aber auch besonders kennzeichnen und jeden Quark, der zur (menschlichen) Drift führt daraus entfernen?

        In diesem Sinne

        Freundschaftlichste Grüße
        TS

        --
        es wachse der Freifunk
        http://freifunk-oberharz.de
        1. problematische Seite

          Hallo Tom,

          Und nun noch eine Bitte @1unitedpower und @Christian Kruse:

          Ich bin jetzt absichtlich ca. ein Jahr ausgestiegen und daher nicht mehr im Kontext.

          viel hast du damit aber nicht versäumt - ist jedenfalls mein Eindruck.

          Und ich fühle mich damit beschissen in Bezug auf die gewälten sogenannten Fachbegriffe udn auch auf die hingeschmissenen Links. Diese Knappheit vergällt einem das Forum!

          Ja, eine Antwort, die lediglich aus einem Buzzword oder einem Link besteht, finde ich auch alles andere als vorbildlich - zumindest ein, zwei Sätze der Erläuterung gehören in aller Regel dazu.
          Ich verstehe aber nicht, wieso du das gerade CK und 1UP vorwirfst, und warum gerade jetzt. Zumindest in diesem Thread finde ich keinen Beitrag, auf den der Vorwurf passt.

          Jemand anders, der auch gern sehr knapp (IMO oft zu knapp) antwortet, ist Gunnar Bittersmann. Seine Antworten sind oft wertvoll, aber oft auch auf einem Niveau, das dem Fragesteller zu hoch ist.

          Ich habe es anders herum auch versucht, damit Ihr einen Spiegel habt für Euer Verhalten. Ich habe dem Martin auf seine Frage, ob ich das näher erläutern möge, "nö" geantwortet.

          Yo. Das fand ich schon ein bisschen frech. Knappe Antworten geben ist schon ... naja, enttäuschend. Aber auf konkrete Nachfrage auch noch rundheraus mit "nö" zu reagieren, ist etwas unverschämt. Das tun die von dir Genannten nämlich nicht.

          Und nein! Es ist nicht böse gemeint.

          Natürlich nicht. Es ist Kritik, und Kritik pickt oft nur die negativen Aspekte raus. Solange man das in einer anständigen Weise äußert, ist das auch völlig okay.

          Ich finde nur, dass die Sprechweise im Forum wieder auf eine allgemeinverständliche Plattform zurückkommen muss. Davon sind "Spezialistenthreads" vielleicht auszunehmen. Vielleiocht sollten wir die dann aber auch besonders kennzeichnen und jeden Quark, der zur (menschlichen) Drift führt daraus entfernen?

          Hmm. Da kann ich dir wieder nicht ganz folgen. Klar, es gibt ab und zu Threads, die auf ein fachlich ziemlich abgehobenes Niveau abdriften, aber das ist - meiner Wahrnhmung nach - doch eher die Ausnahme.

          So long,
           Martin

          --
          Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
          - Douglas Adams, The Hitchhiker's Guide To The Galaxy
          1. problematische Seite

            Hallo,

            Aber auf konkrete Nachfrage auch noch rundheraus mit "nö" zu reagieren, ist etwas unverschämt.

            Hier kann man das „etwas“ auch völlig weglassen.

            Gruß
            Kalk

            1. problematische Seite

              Hallo,

              Aber auf konkrete Nachfrage auch noch rundheraus mit "nö" zu reagieren, ist etwas unverschämt.

              Hier kann man das „etwas“ auch völlig weglassen.

              Dann komm zum Treffen und lass uns das ausdiskutieren, bis das Bier oder dar Kaffee oder so nicht mehr schmeckt... :-P

              ...

              Grüße
              TS

              --
              es wachse der Freifunk
              http://freifunk-oberharz.de
              1. problematische Seite

                Hallo,

                lass uns das ausdiskutieren,

                wüsste nicht, was es da zu diskutieren gäbe

                Gruß
                Kalk

                1. problematische Seite

                  Hallo und guten Tag,

                  lass uns das ausdiskutieren,

                  wüsste nicht, was es da zu diskutieren gäbe

                  Ich hab's gelesen. Prost Demokratie und Diskussionsfähigkeit. Für eine ausführliche Antwort habe ich jetzt leider keine Zeit, stelle mich dieser aber später gerne nochmal. Please keep in mind an remind me :-)

                  Grüße
                  TS

                  --
                  es wachse der Freifunk
                  http://freifunk-oberharz.de
                  1. problematische Seite

                    Hallo,

                    Prost Demokratie und Diskussionsfähigkeit.

                    Oha, jetzt drohst du mit der Demokratiekeule? Mit Demokratie hat deine unverschämte Antwort ja nun gar nix zu tun, mehr sag ich jetzt nicht mehr dazu.

                    Gruß
                    Kalk

                    1. problematische Seite

                      Hallo und guten Abend,

                      Prost Demokratie und Diskussionsfähigkeit.

                      Oha, jetzt drohst du mit der Demokratiekeule? Mit Demokratie hat deine unverschämte Antwort ja nun gar nix zu tun, mehr sag ich jetzt nicht mehr dazu.

                      Dann komm doch zum Offline-Treffen. Dann können wir gemeinsam vor doe Tür gehen. :-P

                      Grüße
                      TS

                      --
                      es wachse der Freifunk
                      http://freifunk-oberharz.de