Alex: Übergroße Tabelle in einem Frameset laden

Hallo Leute,

sicherlich werden ein paar von euch diesen super Artikel von Garnot Back gelesen haben, in dem er beschreibt, wie man übergroße Tabellen mit fixen Spalten darstellen kann. Dieses funktioniert auch einwandfrei.

Wenn ich allerdings diese Seite in einem Frame darstellen will (Frameset verschachtelt in einem Frame), dann zeigt er mir zwar meine Tabelle an, aber die Scriptfunktionen werden nicht mehr ausgeführt.

Und ich muß diesen Frame als Fenster für die Tabelle benutzen, da ich aus den anderen Frames Selects habe, mit denen ich die Tabelle fülle.

Hoffe Ihr könnt weiterhelfen.

Grüße Alex

  1. Hallo Alex,

    Wenn ich allerdings diese Seite in einem Frame darstellen will (Frameset verschachtelt in einem Frame), dann zeigt er mir zwar meine Tabelle an, aber die Scriptfunktionen werden nicht mehr ausgeführt.

    Ich hoffe, du hast das externe Skript auch weiterhin im Parent-Dokument der Teiltabellenframes eingebunden, weil diese über jenes miteinander kommunizieren. Dort würde ich auch keine weiteren Geschwisterframes einfügen, sondern bei Bedarf auf eine noch höhere Generation ausweichen mit "Onkel- und Tanten-Frames", wenn du so willst.

    Gruß Gernot

    1. Ich hoffe, du hast das externe Skript auch weiterhin im Parent-Dokument der Teiltabellenframes eingebunden, weil diese über jenes miteinander kommunizieren. Dort würde ich auch keine weiteren Geschwisterframes einfügen, sondern bei Bedarf auf eine noch höhere Generation ausweichen mit "Onkel- und Tanten-Frames", wenn du so willst.

      Gruß Gernot

      Hallo Gernot,

      ich habe alles so beibehalten wie es war. ich lade die seite (wie sie im beispiel heißt "tabelle.html") im Frame. Das Script ist auf jener Seite "frameset.html" definiert, so wie es auch im Beispiel gemacht worden ist. Muß ich es im externen Frame definieren? Wie soll ich das verstehen, Onkel- und Tantenframes?

      Gruß Alex

      1. Hallo Alex,

        ich habe alles so beibehalten wie es war. ich lade die seite (wie sie im beispiel heißt "tabelle.html") im Frame. Das Script ist auf jener Seite "frameset.html" definiert, so wie es auch im Beispiel gemacht worden ist. Muß ich es im externen Frame definieren?

        Kommen denn die Seite tabelle.html und und die Seite frameset.html von derselben Domain wie das nochmals umgebende Frameset-Dokument, das du darum herum gebastelt hast?  Sonst kämst du in Konflikt mit der Same-Origin-Policy.

        Ich sehe in meinem Code eigentlich sonst keinen Grund, warum das nicht funktionieren sollte, denn aus den Teil-Tabellen-Frames wird aus diesen heraus im parent (nicht im top) ein Script angesprochen, das dort alle Geschwisterframes koordiniert.

        Wie soll ich das verstehen, Onkel- und Tantenframes?

        So wie du es gemacht hast, hast du "Onkel- und Tantenframes" die als Geschwister des Framesets mit der Tabelle anzusehen sind, das seinerseits zusammen mit diesen als Frame in einem weiteren Frameset-Mutterdokument eingebunden ist.

        Gruß Gernot

        1. Hallo Gernot,

          Kommen denn die Seite tabelle.html und und die Seite frameset.html von derselben Domain wie das nochmals umgebende Frameset-Dokument, das du darum herum gebastelt hast?  Sonst kämst du in Konflikt mit der Same-Origin-Policy.

          Ich sehe in meinem Code eigentlich sonst keinen Grund, warum das nicht funktionieren sollte, denn aus den Teil-Tabellen-Frames wird aus diesen heraus im parent (nicht im top) ein Script angesprochen, das dort alle Geschwisterframes koordiniert.

          Ich kann Dir das kurz erklären wie ich das gemacht habe. Ich habe Tabelle.html und Frameset.html. Tabelle.html wird aufgerufen und es funktioniert das frameset.html.

          wenn ich ein frameset namens index.html erstelle und im code
          <frame src="tabelle.html" noresize name="Monatsuebersicht" scrolling="yes" >
          schreibe, werden die funktionen beim aufruf von index.html nicht mehr gemacht. Woran das liegen kann, weiß ich aber nicht.

          Es kann sein das es an der Same-Origin-Policy liegt, weiß aber nicht woran man das erkennt?!

          Gruß Alex

          1. Hallo Alex,

            Es kann sein das es an der Same-Origin-Policy liegt, weiß aber nicht woran man das erkennt?!

            Wenn du z.B. meine Anzeigebeispiele, die hier auf der selfhtml.org-Domain liegen, testweise einfach in dein umgebendes Frameset einbinden würdest, dann kämst du in Konflikt mit der Same-Origin-Policy. Wenn du sie aber bei dir abspeichern würdest und nicht über Domaingrenzen hinweg operierst, dann kann es daran nicht liegen.

            Möglicherweise hast du einem Frame den gleichen Namen gegeben wie ich in meinem eingebundenen Frameset? Sonst müsste ich der Sache selbst mal genauer auf den Grund gehen, woran das liegen könnte.

            Gruß Gernot

          2. Hallo zusammen,

            das PRoblem scheint gelöst zu sein. Statt die tabelle zu laden, habe ich das Frameset mal geladen, vermutlich hat es über die eigentliche tabelle kein frameset aufbauen können, weshalb auch die funktionen nicht starteten.

            Grüße Alex

            1. Hallo Alex,

              das PRoblem scheint gelöst zu sein. Statt die tabelle zu laden, habe ich das Frameset mal geladen, vermutlich hat es über die eigentliche tabelle kein frameset aufbauen können, weshalb auch die funktionen nicht starteten.

              Jetzt wird mir auch alles klar; es liegt an der Nachladefunktion. Versuche doch mal Folgendes, damit die Tabelle auch angezeigt wird, wenn JavaScript deaktiviert ist:

                
              if (document.layers) {  
               window.location.replace("leer.html");  
              } else {  
               if((self == parent) || ((top == parent) && (top != parent.parent))) {  
              // ^ dies ist ergänzt^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
                window.location.replace("frameset.html");  
               }  
              }
              

              So sollte die Seite tabelle.html auch dann _mein Frameset zwischen deines und sich selbst nachladen. Das Problem war, dass es zum Nachladen nicht kam, weil die Seite "tabelle.html" durch Einbinden in _dein Frameset bereits nicht mehr ihre eigene Mutterseite war und somit  if(self == parent) nicht erfüllt wurde.

              Gruß Gernot

  2. Hallo Gernot,

    ich habe alles so beibehalten wie es war. ich lade die seite (wie sie im beispiel heißt "tabelle.html") im Frame. Das Script ist auf jener Seite "frameset.html" definiert, so wie es auch im Beispiel gemacht worden ist. Muß ich es im externen Frame definieren? Wie soll ich das verstehen, Onkel- und Tantenframes?

    Gruß Alex