Das Problem ist folgendes:
Der Embed-Tag hat keine Ahnung davon, wie oft er im Template aufgerufen wird.
Das iFrame, welches er ausgeben soll, bekommt eine im Quellcode festgelegte ID, nämlich "myframe".
Du erhältst am Ende mehrere iFrames, die alle dieselbe ID haben.
Das allein führt schon dazu, dass bei einigen Browsern für das Javascript, das zur dynamischen Berechnung der Höhe zuständig ist, bereits nach dem ersten iFrame, das es mit dieser ID findet, die Sache erledigt ist (da IDs nur ein einziges Mal vorkommen dürfen).
Da das iframe mit display:none ausgegeben wird und erst durch das Javascript die Sichtbarkeit des ersten iframes (nach Berechnung der korrekten Höhe) auf display:block gesetzt wird, bleiben die nachfolgenden iframes alle unsichtbar.
Außerdem müsste man für mehrere iFrames das Javascript im Quellcode des Embed-Tags modifizieren.
Da gibt es eine Zeile mit folgendem Hinweis:
Code: Select all
//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["myframe"]
Das allein wird aber nicht zu 100% funktionieren, da weiter unten im Quellcode steht:
return "<__iframe id='myframe' ... "
Und genau hier liegt der Fehler.
Es bleibt dabei, dass mehrere iFrames dieselbe ID haben.
Ich habe den Tag mal etwas überarbeitet. (siehe Anhang)
Es gibt jetzt noch weitere Parameter.
iframe_id : (optional) ist die ID, die das iFrame bekommen soll. Standard ist "myframe";
iframe_id_list : (optional) eine Liste von IDs für jedes iFrame im Template durch Komma getrennt. Ist nur im Zusammenhang mit dem Parameter "header=true" sinnvoll. Der Parameter "iframe_id_list" sorgt dafür, dass man das Javascript nicht jedesmal selber neu ändern muss.
width: (optional)
height: (optional)
style: (optional) weitere stylesheets für das iframe
Bsp:
Code: Select all
{embed header=true iframe_id_list="myframe1, myframe2, myframe3"}
Und im Editor dann
Code: Select all
{embed url='http://partnerlink1' iframe_id="myframe1" height="500px"}
{embed url='http://partnerlink2' iframe_id="myframe2" style="height:25em"}
{embed url='http://partnerlink3' iframe_id="myframe3"}
Das Hauptproblem bei der dynamischen Berechnung der Höhe eines iframes ist, dass man dazu auf dessen Eigenschaft
contentDocument zugreifen muss.
Das funktioniert allerdings nur, wenn der Inhalt des iframes vom selben Server geladen wird wie die Seite in der das iframe eingebettet ist, da man aus Sicherheitsgründen bei externen Inhalten keinen Zugriff auf
contentDocument hat.
Dies führt ebenfalls dazu, dass das Javascript bei externen Inhalten nach dem ersten iframe abgebrochen wird und die nachfolgenden iframes nicht sichtbar werden.
Wenn Du genau weißt, wie hoch die iframes sein sollen, dann gib die Höhe mit Hilfe des Parameters "height" an.
Oder mit dem Parameter "style".
Das header-zeugs kannst Du Dir dann sparen.
ps: nach dem Download des Anhangs die Endung .txt entfernen und die Datei in den Ordner "plugins" kopieren.