Rainers Horen
Sonntag, den 13.01.2008 [18:39]
Das Web vernetzt sich immer mehr. Gerade im kommerziellen Bereich werden immer mehr Kooperationen genutzt. Das heißt Inhalte fremder Seiten werden erlaubt und gewollt in eigenen Seiten eingebunden. Geschieht das nicht durch Syndikation via RSS & Gen., muss ein IFRAME her. Bei Goggle heißt das dann Gadget. Dieser spezielle Inhaltscontainer unterscheidet sich in einem Punkte von all den anderen Blockcontainer: er passt seine Größe nicht dem Inhalt an. Javascript könnte die Lösung sein. Die Goggle Gadgets können damit umgehen. In dem Framework gibt es eine ¬dynamic-height Libray, die sich genau des Problems annimmt. Leider lässt sich die Lib außerhalb der Gogglewelt nicht anwenden, da sie recht stark verzahnt ist.

Nutzt man selbige Maschine zur Suche nach Alternativen, dann gibt es viele Lösungen, die sich stark ähneln und doch nicht funktionieren. Entweder arbeiten sie nur mit dem Explorer oder nur, wenn Vater und Sohn auf der gleichen Domain laufen. Eine besonders komfortable Lösung findet sich in der Sammlung von ¬DynamicDrive. Aber auch sie wirft das Handtuch mit einer Exception, die den Zugriff auf gewisse Objekte nicht zulässt. Offenbar kommunizieren alle diese Lösungsansätze zwischen den Vater/Mutter- und dem Sohn/Tochterfester und das ist über Rechnergrenzen nicht erlaubt. Leider ist eben gerade das der Sinn der Einbindung solcher Schnipsel. Natürlich wäre es sinnvoller, statt des Iframes Divs zu verwenden und den Inhalt via Ajax (-proxy) zu bedienen. Das setzt aber in jedem Fall noch mehr Eingriff in das Fremdsystem voraus. Noch besser wäre die Iframe-Eigenschaft height="adjust"

Im Rahmen der GoogleGadgets klappt es dennoch. Dort wird das Resizing nicht vom Vater betreut, sondern vom Sohn. Nach jeder Änderung der Gadgetgröße wird eine von Google bereitgestellte Funktion _IG_AdjustIFrameHeight() aufgerufen, die dann (oh Wunder!) Zugriff auf das DOM des Vaters hat. Da Google sicherlich keinen Einfluß auf die Sicherheitseinstellungen der Browser hat, muss es wohl doch einen Trick geben und das ist die Wochenendaufgabe. ;-))

Das Googeln zum Thema ist übrigens eine Lehrstunde über Selbiges. Was da alles für festgefügte, aber unreife Meinungen hochpoppen: es gibt die wildesten Vermutungen, warum es nicht klappt. Beispielesweise behauptet ¬hier ein gewisser Sheldon, dass es daran liegt, dass das dere Inhalt des Iframes in ASP ist und es deshalb nicht klappt. dabei ist die Fehlermeldung vo Firebug eindeutig …

¬John, Keithund Martin präsentieren eine Lösung, die vom Sohn getriggert wird, was schon mal schlau ist, aber trotzdem aus Sicherheitsgründen nicht zugelassen ist. Der Sohn darf keine Funktion des Vaters aufrufen oder Variablen verändern &mdah; sofern beide nicht im gleichen Hause wohnen.

¬Johns Squibb ist auf dem Gebiete der Iframes und Divs ziemlich plietsch. Er führt vor, wie man in inverses Iframe bauen kann. Muss man mal ¬gesehen haben. Es ist schon frappierend und hat schon etwas von Inversphishing.
Beitrag kommentieren