Federle: frameübergreifendes Dhtml

Wie kann ich ein absolut positioniertes Element über alle Frames bewegen?

  1. Wie kann ich ein absolut positioniertes Element über alle Frames bewegen?

    Selbstverstaendlich ueberhaupt nicht. Auch DHTML beschraenkt sich auf ein einzelnes Dokument. Du programmierst also in Dokumenten, nicht Browserfenstern.

    Oder hab ich Dich falsch verstanden?

    Thomas Hieck

    Wozu ueberhaupt Frames bei DHTML?

    1. Hi,

      Wie kann ich ein absolut positioniertes Element über alle Frames bewegen?

      Selbstverstaendlich ueberhaupt nicht. Auch DHTML beschraenkt sich auf ein einzelnes Dokument. Du programmierst also in Dokumenten, nicht Browserfenstern.

      richtige Antwort, falsche Interpretation. Ein Frame ist intern nichts anderes als ein Fenster, so wie ein neues Browserfenster. Man kann ein DHTML-Objekt nicht plötzlich außerhalb des Fensters bewegen, in dem es definiert wurde. Das mußte ich auch schmerzlich feststellen, als ich meine Homepage umdesignen wollte...

      Wozu ueberhaupt Frames bei DHTML?

      Um a) kompatibel zu bleiben und b) nicht auf jeder Seite allen Sch... wieder neu zu laden.

      Cheatah

      1. richtige Antwort, falsche Interpretation. Ein Frame ist intern nichts anderes als ein Fenster, so wie ein neues Browserfenster.

        Es ist in erster Linie ein Dokument und genau das meinte ich auch! Bei der Interpretation bleibe ich auch. Man kann nicht Elemente des einen Dokuments in dem andern darstellen.

        Mit Fenstern kann man es natuerlich auch ausdruecken, aber das hat eher etwas mit Browser zu tun und nicht mit HTML. Du siehst es kommt nur auf den Blickwinkel an und ist keine Sache von FALSCH oder RICHTIG.

        Wozu ueberhaupt Frames bei DHTML?

        Um a) kompatibel zu bleiben

        ERKLAERUNG !!!!

        und b) nicht auf jeder Seite allen Sch... wieder neu zu laden.

        Das waren technische Gruende, aber keine das Layout betreffende

        Viele Gruesse, Thomas Hieck

        1. Hi,

          Es ist in erster Linie ein Dokument und genau das meinte ich auch! Bei der Interpretation bleibe ich auch. Man kann nicht Elemente des einen Dokuments in dem andern darstellen.

          doch klar. Ich kann z.B. mit parent.framename.function() eine Funktion eines anderen Dokuments aufrufen und auch die dort verankerten Variablen benutzen. Alles kein Problem. In den Dokumenten kann ich also rumwuseln wie ich will - nur eben nicht in den Fenstern! Im Endeffekt sieht man zwar keinen Unterschied zwischen Dokument und Fenster, aber das Dokument ist eben nicht das Hindernis.

          Wozu ueberhaupt Frames bei DHTML?
          Um a) kompatibel zu bleiben
          ERKLAERUNG !!!!

          Es gibt immer noch Browser, die keine DHTML beherrschen. Wenn ich jetzt die Navigation (wird meist in Frames gemacht) in DHTML erstelle, schließe ich ggf. einige Browser aus. DHTML ist für mich jedenfalls kein Ersatz für Frames, genauso wie Grafiken ein Ersatz für Farben sind: Es läßt sich zwar das meiste ähnlich machen, aber es hat eigentlich nichts miteinander zu tun.

          und b) nicht auf jeder Seite allen Sch... wieder neu zu laden.
          Das waren technische Gruende, aber keine das Layout betreffende

          Es ging nur um das "Warum", nicht um das Layout.

          Cheatah

          1. doch klar. Ich kann z.B. mit parent.framename.function() eine Funktion eines anderen Dokuments aufrufen und auch die dort verankerten Variablen benutzen. Alles kein Problem. In den Dokumenten kann ich also rumwuseln wie ich will - nur eben nicht in den Fenstern!

            Jetzt widersprichst Du Dir aber. In deinem letzten Posting hast DU noch gesagt die einzelnen Frames waeren jeweils andere Fenster und nun willst du ploetzlich "rumwuseln in den 'Fenstern' wie Du willst" - uh-ah?!? (das nur am Rande)

            Wollen wir nicht doch besser bei Dokumenten bleiben? Ich habe von Anfang an nur von diesen gesprochen und was man darin DARSTELLEN kann. Wie man diese Dokumente steuert ist eine ganz andere Sache. Nur ich kann eben nicht die Elemente des einen Dokuments in dem andern darstellen, und damit wiederhole ich mich zu letzten mal. Mehr wollte ich nie sagen.

            Im Endeffekt sieht man zwar keinen Unterschied zwischen Dokument und Fenster, aber das Dokument ist eben nicht das Hindernis.

            Ein Dokument hat mit einem Fenster nichts zu tun, ausser, dass es sich gelegentlich darin befindet. Ich seh da sehr wohl einen Unterschied. Nur rede ich nicht ueber Fenster, wie Du die ganze Zeit. Und ein Hinderniss sind Dokumentgrenzen allemal, ansonsten zeige mir wie Du die Tabelle des einen Dokument in dem anderen darstellst? Viel Spass!

            Wozu ueberhaupt Frames bei DHTML?
            Um a) kompatibel zu bleiben
            ERKLAERUNG !!!!

            Es gibt immer noch Browser, die keine DHTML beherrschen. Wenn ich jetzt die Navigation (wird meist in Frames gemacht) in DHTML erstelle, schließe ich ggf. einige Browser aus. DHTML ist für mich jedenfalls kein Ersatz für Frames,

            Im Endeffekt hast Du gerade gesagt, du verzichtest auf DHTML und nimmst Frames um kompatibel zu bleiben. Das kann ich gut verstehen, aber wenn ich schon eine Seite voll DHTML programmiere, dann brauche ich keine Frames, da ich dann ja nicht kompatibel bleiben will. Die Entscheidung war also schon gefallen.

            <menschelei>Einen schoenen Ostersonntag noch</menschelei>

            Viele Gruesse, Thomas Hieck

            1. Hi,

              doch klar. Ich kann z.B. mit parent.framename.function() eine Funktion eines anderen Dokuments aufrufen und auch die dort verankerten Variablen benutzen. Alles kein Problem. In den Dokumenten kann ich also rumwuseln wie ich will - nur eben nicht in den Fenstern!

              Jetzt widersprichst Du Dir aber. In deinem letzten Posting hast DU noch gesagt die einzelnen Frames waeren jeweils andere Fenster und nun willst du ploetzlich "rumwuseln in den 'Fenstern' wie Du willst" - uh-ah?!? (das nur am Rande)

              lies meine Aussage noch mal... ich schreibe, man könne in den *Dokumenten* rumwuseln! Klar kann man auch bestimmte Eigenschaften der Fenster ansprechen, aber man kann mehrere Fenster nicht als eines behandeln. Darum ging es ja hier.

              Wollen wir nicht doch besser bei Dokumenten bleiben? Ich habe von Anfang an nur von diesen gesprochen und was man darin DARSTELLEN kann. Wie man diese Dokumente steuert ist eine ganz andere Sache. Nur ich kann eben nicht die Elemente des einen Dokuments in dem andern darstellen, und damit wiederhole ich mich zu letzten mal. Mehr wollte ich nie sagen.

              Wenn Du ein Element mit einer JavaScript-Funktion erstellst, kannst Du mit parent.andererFrame.funktion() dieses im aktuellen Dokument erstellen.

              Im Endeffekt sieht man zwar keinen Unterschied zwischen Dokument und Fenster, aber das Dokument ist eben nicht das Hindernis.

              Ein Dokument hat mit einem Fenster nichts zu tun, ausser, dass es sich gelegentlich darin befindet. Ich seh da sehr wohl einen Unterschied.

              Richtig, nur für die meisten Fälle reicht es, einfach keinen Unterschied zu machen. Das meinte ich mit "Endeffekt".

              Nur rede ich nicht ueber Fenster, wie Du die ganze Zeit. Und ein Hinderniss sind Dokumentgrenzen allemal, ansonsten zeige mir wie Du die Tabelle des einen Dokument in dem anderen darstellst? Viel Spass!

              Wenn ich die Tabelle mit einer JavaScript-Funktion erstelle, ist das kein Problem.

              Wozu ueberhaupt Frames bei DHTML?
              Um a) kompatibel zu bleiben
              ERKLAERUNG !!!!

              Es gibt immer noch Browser, die keine DHTML beherrschen. Wenn ich jetzt die Navigation (wird meist in Frames gemacht) in DHTML erstelle, schließe ich ggf. einige Browser aus. DHTML ist für mich jedenfalls kein Ersatz für Frames,

              Im Endeffekt hast Du gerade gesagt, du verzichtest auf DHTML und nimmst Frames um kompatibel zu bleiben. Das kann ich gut verstehen, aber wenn ich schon eine Seite voll DHTML programmiere, dann brauche ich keine Frames, da ich dann ja nicht kompatibel bleiben will. Die Entscheidung war also schon gefallen.

              Das sehe ich anders. Man kann doch DHTML benutzen und trotzdem die Seiten auch für ältere Browser betrachtbar gestalten? Außerdem gibt es ja immer noch den Punkt, daß ich ohne Frames die gesamte DHTML-elei in jeder Datei mitladen muß.

              Cheatah

        2. Hallo,

          richtige Antwort, falsche Interpretation. Ein Frame ist intern nichts anderes als ein Fenster, so wie ein neues Browserfenster.
          Es ist in erster Linie ein Dokument und genau das meinte ich auch! Bei der Interpretation bleibe ich auch. Man kann nicht Elemente des einen Dokuments in dem andern darstellen.

          Wie sieht die Objekthirarchie aus? Wo stecken die Eigenschaften, auf die man im speziellen Anliegen zugreifen will?

          Sieht doch so aus:
               window.document.meine_Eigenschaft
          oder
               window.meine_Eigenschaft
          wobei window (wenn ein Frame wie hier) Eigenschaft eines uebergeordneten window-Objektes ist:
               window.mein_Frame.meine_Eigenschaft
          oder
               window.mein_Frame.document.meine_Eigenschaft

          Merkt Ihr was?
          Wenn ich in einem Frame bin, steht immer mindestens window drueber (Anm: Frames sind auch window-Objekte).
          Ist vollkommen egal, was da in der Hirarchie alles dazwischen steht (document oder sogar document in einem Layer bei Netscape oder nur window). Oberste Ebene ist window. Aus dem komme ich nicht raus.
          Und deswegen kann man keine Objekte ueber Frame-Grenzen schieben.

          Ich hoffe, ich habe mich jetzt nicht zu verworren ausgedrueckt, Ihr konntet meinen Gedanken folgen, ist gar nicht so einfach, das Erklaeren. Vielleicht solte man Bildchen malen? Kriege ich mit ASCII aber so schlecht hin. :-(

          Spontaner Gedanke am Rande, nicht bis zum Ende gedacht:
          Wie waere es, in einem Frame eine Kopie des betreffenden Objektes anzulegen?
          Damit muesste es doch eigentlich gehen, indem man in jedem Frame Teile zeigt, die nahtlos aneinandergrenzen.
          Damit hat man zwar kein Objekt aus seinem Fenster rausbewegt, aber man koennte die Illusion schaffen?
          Geht sowas? Muesste man mal gelegentlich genauer nachdenken.

          Christine

          1. Hallo Christine,

            Merkt Ihr was?
            Wenn ich in einem Frame bin, steht immer mindestens window drueber (Anm: Frames sind auch window-Objekte).

            intern wahrscheinlich wirklich abgeleitet von der Windowklasse .. habs nie richige getestet. Du?

            Ist vollkommen egal, was da in der Hirarchie alles dazwischen steht (document oder sogar document in einem Layer bei Netscape oder nur window). Oberste Ebene ist window. Aus dem komme ich nicht raus.
            Und deswegen kann man keine Objekte ueber Frame-Grenzen schieben.

            Natuerlich hast Du recht, aber ich hab nur gesagt, dass ich auch keine Objekte aus einem Dokument rausschieben kann. Daraus folgt dann logischerweise auch, dass ich es nicht aus einem Frame oder gar Window rausschieben kann. Aber das waere dann ueber das Dokument hinaus gedacht.

            Apropos Layer in Netscape. Da scheint es irgendwie doch moeglich, obwohl ein Layer ja seine eigene Dokumentebene hat. Man kann einen Layer in einem Layer aus dessen Anzeigebereich rausschieben. Will man das vermeiden muss man explizit den Clipbereich des aeusseren Layers angeben. Warum das so ist, ist mir schleierhaft, auch warum ein Layer im Layer nicht der visibility des Mutterlayers folgt.

            Spontaner Gedanke am Rande, nicht bis zum Ende gedacht:
            Wie waere es, in einem Frame eine Kopie des betreffenden Objektes anzulegen?
            Damit muesste es doch eigentlich gehen, indem man in jedem Frame Teile zeigt, die nahtlos aneinandergrenzen.
            Damit hat man zwar kein Objekt aus seinem Fenster rausbewegt, aber man koennte die Illusion schaffen?
            Geht sowas? Muesste man mal gelegentlich genauer nachdenken.

            Ich denk schon, dass sowas grundsaetzlich geht, aber sicher nicht ohne Probleme. Ich denke da hier an das Pixelproblem bei Frames. Ein Versuch waere es aber Wert.

            Viele Gruesse und noch schoene Ostern,

            Thomas Hieck

          2. Spontaner Gedanke am Rande, nicht bis zum Ende gedacht:
            Wie waere es, in einem Frame eine Kopie des betreffenden Objektes anzulegen?
            Damit muesste es doch eigentlich gehen, indem man in jedem Frame Teile zeigt, die nahtlos aneinandergrenzen.
            Damit hat man zwar kein Objekt aus seinem Fenster rausbewegt, aber man koennte die Illusion schaffen?
            Geht sowas? Muesste man mal gelegentlich genauer nachdenken.

            Christine

            Das wäre eigentlich einfach, man mußte nur 2 Objekte erzeugen(in jedem Frame eines) und
            diese dann absolut zum übergeordneten Objekt(also Browserfenster) positionieren, und zwar genau mit den gleichgen Koordinaten. Beim Übergang vom einem zum anderen Frame würde
            sich der gewünschte Effekt einstellen.
            ABER: Wie soll das mit dem Timing funktionieren. Ich kann ja aus dem einen Framne nicht auf das andere zugreifen, und so beide gleichzeitig bewegen?

            Cu johannes

            1. Hallo,

              ABER: Wie soll das mit dem Timing funktionieren. Ich kann ja aus dem einen Framne nicht auf das andere zugreifen, und so beide gleichzeitig bewegen?

              Wieso denn nicht?
              Selbstverstaendlich kann man auf Objekte eines anderen Frames zugreifen.
              Guck doch mal in meine JavaScript-Notizen, fahr mal mit der Maus ueber die Menuepunkte. Die Erklaerungen erscheinen im Frame daneben.
              Geteilt sind die natuerlich nicht, etwa halb hier und halb da, das war eben nur so eine kleine theoretische Spinnerei von mir, mache ich bestimmt nicht wirklich.

              Christine

              PS: Ach so, wenn Du Dich dafuer interessierst, wie man an Objekte in anderen Frames oder Fenstern rankommt, dann lies doch mal ein bisschen in der JavaScript-FAQ unter
              "mehr Fenster und Frames - Kommunikation zwischen ..." :
              http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/