Über mich

Startseite arrow Tipps & Tricks arrow iFrame-Höhe an dessen Inhalt automatisch anpassen

iFrame-Höhe an dessen Inhalt automatisch anpassen

Freitag, 15. August 2008
Geschrieben von Armin Vieweg
Mit diesem kleinen Codeschnipsel wird die Höhe aller Frames auf einer Seite an deren Inhalt angepasst. Sehr nützlich für Seiten die noch auf iFrames basieren und Scrollleisten vermeiden möchten.

Ich glaub fast jeder hat irgendwann mal nach einem solchen Code gesucht, der einen iFrame an die Höhe des Inhaltes anpasst. Es wird also geschaut, wie hoch der Inhalt im iFrame selbst ist, dann wird diese Höhe über DOM im iFrame eingetragen.



Das JavaScript, das dies bewerkstelligt sieht folgendermaßen aus:

<script type="text/javascript">
  var framefenster = document.getElementsByTagName("iFrame");
  var auto_resize_timer = window.setInterval("autoresize_frames()", 400);
  function autoresize_frames() {
    for (var i = 0; i < framefenster.length; ++i) {
        if(framefenster[i].contentWindow.document.body){
          var framefenster_size = framefenster[i].contentWindow.document.body.offsetHeight;
          if(document.all && !window.opera) {
            framefenster_size = framefenster[i].contentWindow.document.body.scrollHeight;
          }
          framefenster[i].style.height = framefenster_size + 'px';
        }
    }
  }
</script>


ACHTUNG! Das ganze Vorhaben funktioniert nur dann, wenn sich die Datei des iFrame und die Datei die im iFrame aufgerufen wird, auf der gleichen Domain befindet! Aus Sicherheitsgründen ist eine Domainübergreifende Lösung in den Browsern abgeschaltet.

Ändert sich der Inhalt in dem iFrame, wird zum Beispiel länger oder kürzer, passt sich das iFrame alle 400 Millisekunden daran an. Dafür sorgt diese Zeile:

var auto_resize_timer = window.setInterval("autoresize_frames()", 400);



Ursprünglich war dieses Script dafür vorgesehen die WYSIWYG-Boxen vom CMS Weblication automatisch an deren Höhe anzupassen. Dort besteht der Editor nämlich aus einem iFrame - und damit beim Content-Pflegen keine Scrollbalken entstehen sollten, haben ich diesen Code geschrieben.

Es befindet sich auch eine Browser-Weiche darin, die im Internet Explorer nicht body.offsetHeight, sondern den .scrollHeight ausgibt. Der IE kennt zwar die Eigenschaft offsetHeight, gibt dort aber andere Werte aus als andere Browser.

Diese Code wirkt sich übrigens auf alle iFrames unabhängig voneinander aus, die sich innerhalb der Seite befinden. Jeder iFrame wird also individuell in der Höhe angepasst, je nach dem wie hoch dessen Content ist.



Wie kann ich meinen iFrame anpassen, wenn der Inhalt auf einer anderen Domain liegt?

Update: 31.03.2010


Das geht leider nicht. Firefox gibt folgende Meldung aus:

<http://www.externe-domain.de> wurde die Erlaubnis für das Lesen der Eigenschaft Window.setIFrameHeight von <http://www.professorweb.de> verweigert.


Vielen Dank an qwert für den Hinweis.



Andere, interessante Artikel

IFrame ohne IFrame




  Kommentare (56)
 1 Geschrieben von: Armin Vieweg, am 19.08.2008 um 14:23
Das obere Script hatte einen kleinen Tippfehler, den ich heute entfernt habe. Darüberhinaus habe ich beide Script mit einer kleinen 'px'-Modifikation bestückt, die jegliche Kompatibilitätsprobleme mit unterschiedlichen Browsern und Doctypes lösen sollte. 
 
Gruß 
Armin
 2 Geschrieben von: Jeanette, am 04.10.2008 um 21:51
Danke, das ist genial!!!! 
Bei Firefox funzt es, aber leider beim IE nicht :-( 
Woran liegt das?
 3 Geschrieben von: heiko, am 05.10.2008 um 17:23
Im IE 7 bei mir ebenfalls nicht....
 4 Geschrieben von: Armin Vieweg, am 12.10.2008 um 21:43
Hallo, 
 
bei mir klappt das Script in FF, IE6 und 7. Ich schaue es mir die kommende Woche aber nochmal genau an und sag nochmal bescheid. 
 
Gruß 
Armin
 5 Geschrieben von: Armin Vieweg, am 13.10.2008 um 15:43
Hallo, 
 
habe das Script nochmal getestet und es funktioniert nach wie vor. 
 
[URL=/files/iframe/index.html]Hier findet Ihr eine Demo[/URL], die in FF, IE6 und 7 einwandfrei funktionieren sollte. 
 
Wenn es funktioniert ist unten der Text "Tralalala :D" zu lesen (ohne das man scrollen muss). 
 
Ihr solltet bedenken, dass folgende drei Kriterien erfüllt sein müssen: 
 
- Der Inhalte vom iFrame muss sich auf dem gleichen Server befinden und darf nicht mit einem externen Pfad (beginnt mit http://) aufgerufen werden sondern nur mit einem absoluten oder relativen Pfad 
 
- JavaScript muss aktiviert sein 
 
- Führt man das Script lokal im IE aus, kommt standardmäßig ein Sicherheitshinweis, den man erst bestätigen muss bevor JavaScript ausgeführt wird. 
 
Mein Script wurde mehrfach getestet und wird sogar in einem kommerziellen CMS (optional) eingesetzt. 
 
Hoffe geholfen zu haben. 
 
Gruß 
Armin 
 
P.S. Solltet Ihr gar nicht klar kommen schickt mir einfach eine E-Mail! Ich helfe gern.
 6 Geschrieben von: Werauchimmer, am 05.11.2008 um 10:10
Hallo, kann man das IFraume auch irgendwie der Breite nach anpassen? Hab zwar ein bisschen rumgespielt und einfach mal überall wo Height stand Width hingeschrieben:) Allerdings kommt dabei dann eine falsche Seitenbreite heraus!
 7 Geschrieben von: Armin Vieweg, am 05.11.2008 um 10:36
Hab das auch mal getestet. Das geht leider nicht so einfach. 
 
In meinem Test hat es zwar funktioniert, jedoch hab in der Datei die im iFrame geöffnet wird vorher dem Body die Breite 200 Pixel gegeben. 
 
Ansonsten schafft das JavaScript nicht die Breite dynamisch auszulesen. 
 
Ich vermute das hängt damit zusammen, dass die Höhe im Prinzip immer definiert ist. Line-Height z.B. gibt ja einen festen Pixelwert der Höhe an. Einen solchen Wert gibt es aber nicht für die Breite der Zeichen. 
 
Also die Breite dynamisch auszulesen ist nicht ohne weiteres möglich, so dass es auch Sinn macht.
 8 Geschrieben von: tramiz, am 06.04.2009 um 21:33
hi, schaffe nicht das einzubinden. 
wo genau muss jetzt noch mal der batzen code hin? :) 
 
wäre über ne schritt für schritt erklärung sehr glücklich. 
 
viele dank und lg, 
tramiz
 9 Geschrieben von: Markus, am 27.10.2009 um 15:58
Also: 
1. Tag einfügen  
2. SRC Attribut des Tags anpassen. ACHTUNG *kein* http:// verwenden da der Browser sonst denkt das es nicht die selbe URL ist. 
3. Obigen JavaScript Code unter dem Tag einfügen 
 
4 Testen 
 
Mfg
 10 Geschrieben von: pipa, am 04.11.2009 um 13:20
bitte um Hilfe))) bei mir klappts irgend wie nicht(( 
 
also bei mir liegt der Inhalt auf einer anderen domain und zwar hier : 
 
 
 
und die html seite bei mir auf dem desktop, also was soll ich machen, dass das ganze funkzioniert? 
ich danke im voraus!
 11 Geschrieben von: pipa, am 04.11.2009 um 13:28
also, im prinzip kriege ich so eine exeption: 
 
parent.document.getElementById(\"content\") is null
 12 Geschrieben von: pipa, am 04.11.2009 um 14:50
parent.setIFrameHeight is not a function 
 
das ist das entscheidenste problem bei mir
 13 Geschrieben von: Armin Vieweg, am 04.11.2009 um 15:42
Hallo, 
 
wichtig ist, dass das Script auf der Seite eingebunden ist, die Du aufrufst und in der Seite auf der sich der iFrame befindet. 
 
Es wäre super, wenn Du mir eine E-Mail über Kontakt schicken würdest mit einem Link zu beiden Dateien, damit ich mir das mal genauer anschauen kann. So ins Blaue raten ist immer schwierig. 
 
Schönen Gruß 
Armin
 14 Geschrieben von: pipa, am 04.11.2009 um 15:56
wo finde ich deine email?
 15 Geschrieben von: Armin, am 05.11.2009 um 07:39
Unten im Footer über Kontakt ^^
 16 Geschrieben von: Hilfe bei mir geht es nicht!!!, am 10.02.2010 um 18:12
Hallo,  
ich habe das scipt heute bei euch endeckt und leider geht es bei mir nur in safari. firefox schneidet es ab. könnt ihr mir vielleicht helfen?! anbei der link: http://www.musicalkaufhaus.de/onlinetickets/comedy/maiktest.html 
 
vielen dank im voraus maik
 17 Geschrieben von: Armin, am 10.02.2010 um 20:10
Hallo Maik, 
 
Du hast das obere Script auf der Seite eingefügt. Wie ich im Artikel bereits geschrieben und fett markiert hatte, funktioniert dieses Script nur dann, wenn die Seite innerhalb des iframe sich auf der gleichen Domain (oder Sub-Domain) befindet. 
 
In Deinem Fall sind die Domains unterschiedlich. 
 
Dann geht nur die zweite Variante, die den Nachteil hat, dass Du Zugriff auf die Seite brauchst, die Du per iFrame einbinden möchtest. 
 
Gruß 
Armin
 18 Geschrieben von: Hi,, am 10.02.2010 um 21:19
dass heisst dann das es für mich keine lösung gibt? ich komme ja auf die seite im iframe nicht ran.... :-( 
 
Gruß Maik
 19 Geschrieben von: Armin, am 10.02.2010 um 22:44
Wenn Du nicht rankommst, gibt es keine Lösung mehr. Wenn Du Partner von der Seite bist, kannst Du die Firma mal fragen ob Sie dir den Code einbinden den Du benötigst. Es ist eine JavaScript-Funktion die explizit aufgerufen werden muss. Ansonsten bewirkt sie nichts. Und wenn Sie etwas bewirkt, dann ist es nur die Ausgabe der Höhe der Inhalte. Die Lösung ist also unbedenklich. 
 
Man könnte noch die Inhalte der Seite per PHP auf den eigenen Server laden und anschließend über die eigene Domain ausgeben. Dann brauchst Du nicht mal einen iFrame mehr. Aber ein solches Script (Stichwort: Webfetching) verursacht Server-Traffic und ist von den meisten Anbietern von Inhalten nicht gerne gesehen. Außerdem müssen die Links der fremden Seite dann per Preg-Replace manipuliert werden. 
 
Gruß 
Armin
 20 Geschrieben von: Maik, am 11.02.2010 um 10:12
hallo, dass ist dann leider nichts für mich. aber vielen dank für deine hilfe.  
 
Hättest du eine Idee das ich es wenigstens schaffe das der iFrame automatisch immer oben steht? 
 
Maik
 21 Geschrieben von: Armin Vieweg, am 11.02.2010 um 13:44
Ich weiß leider nicht, was Du mit "immer oben stehen" meinst.
 22 Geschrieben von: maik, am 11.02.2010 um 18:07
ich meine das sobald jemand im iframe einen link anklickt bleibt die seite ja normalerweise einfach stehen, wobei der content ganz oben steht.  
 
einfach mal ausbropieren. 
 
http://www.musicalkaufhaus.de/onlinetickets/comedy/index.html
 23 Geschrieben von: Armin Vieweg, am 11.02.2010 um 18:37
Achso. Du gibst dem iFrame die Höhe 100%. Das klappt nicht immer per CSS, Du kannst aber hier auch einfach JavaScript nutzen um die iFrame Höhe an die Höhe des Browserfensters Deiner Seite anzupassen. 
 
Dann lässt Du die Scrollbalken im iFrame sichtbar. Dadurch, dass das iFrame nicht höher ist als Deine Seite hat Dein Body keine Scrollbalken mehr und man gelangt nach Klick auf einen Link wie gewohnt nach oben, dadurch das man nun die Scrollbalken des iFrame nutzt. 
 
Gruß 
Armin
 24 Geschrieben von: Djmuck, am 12.03.2010 um 04:44
Danke Danke Danke..... Endlich gefunden wonach ich lang gesucht habe, war schon verzweifelt.. ;) 
 
Danke noch mal..  
 
mfg Djmuck
 25 Geschrieben von: Djmuck, am 12.03.2010 um 16:25
Hm jetzt hab ich ein problem lol 
Also beim ersten einbau ging alles super, am nähsten tag wollte ich noch mal nach schaun dann gings wieder nicht. :/ 
 
Also im Firefox zeigt er es an (ohne Scrollbalken) sobald ich aber auf impressum klic, schneidet er das content ab und es geht nicht weiter auch kommt kein scrollbalken. 
 
Im IE schaut das ganze aber anders aus, da habe ich trotz allem noch ein scrollbalken und wenn ich auf dem IE ins Impresum schaue verlängert er zwar ein stück das content, aber die scrollbalken sind noch da.  
 
Und beim Firefox verlängert er das content nun ohne aufzuhören, also er verlängert die box immer weiter?? 
 
Was läuft da nun falsch? 
 
Ich habe beide datein auf meiner Domain bzw. Webserver liegen.
 26 Geschrieben von: maria, am 16.03.2010 um 13:10
funkt wunderbar :)
 27 Geschrieben von: Speedclinic, am 19.03.2010 um 03:18
Hallo...erstmal vielen Dank für die Lösung...ohne diese Lösung wäre mein Projekt kaum zu stemmen gewesen...habe nur ein kleines Problem im Firefox 3.6 ...ab und zu schneidet er mir unten ein bißchen was ab...ab und zu ist alles richtig...sind einmal 3 iFrames untereinander für die News und unten der Planer ist auch ein IFrame mit Grafik oben und unten...hier verschiebt er auch gerne mal das IFrame etwas nach unten (Platz zwischen Grafik und IFrame)...im IE sieht alles gut aus...Punkte habe ich eigentlich alle beachtet...habe autoresize_frames mal etwas nach unten korrigiert...leider nicht geholfen...jemand einen Tip...wäre sehr dankbar...hier geht es zur Seite www.speedclinic.de
 28 Geschrieben von: Speedclinic, am 19.03.2010 um 03:23
Mhhh...das Problem mit den news konnte ich lösen, indem ich einfach nochmal einen Absatz in die News gepackt habe...scheint zu klappen...das mit dem IFrame unten klappt aber leider immer noch nicht...ist auch nur eine Notlösung...würde gerne wissen was er da nicht so macht wie es IE anscheinend macht...na, ich schaue mal vorbei...vielleicht gibt es ja ein Update hier...LG
 29 Geschrieben von: Armin Vieweg, am 20.03.2010 um 16:07
Hallo, vielleicht schreibst Du mir nochmal ne Mail, denn ich sehe keinen Fehler im FF auf Deiner Seite. Die das iFrame der News ist 0px hoch, da liegt aber anscheinend auch daran, dass in den News nix drin steht. 
 
Gruß 
Armin
 30 Geschrieben von: Speedclinic, am 21.03.2010 um 00:42
Hallo Armin, 
 
erstmal lieben Dank, daß Du dich meiner annimmst. Ich habe in den letzten 2 Tagen ein wenig rumprobiert und gebastelt. Aktuell sieht es so aus: 
 
- IFrame haben alle eine Höhe von 100px 
- Alles auf einer Domain 
- Die eingebundenen Seiten haben ein Margin von 10px oben und unten bekommen und Hintergrundfarbe schwarz bzw. weiss. 
- Code funktioniert im IE ohne Probleme 
- Im FF schneidet er mir bei 1 von 10 Fällen bei den News unten ein bißchen was ab (sieht so aus, als ob er das I Frame etwas nach unten verschiebt) 
- Im FF setzt er mir bei dem Eventplaner oben ein wenig schwarz hin bzw. fängt mit dem Evenbtplater IFrame erst 10px unter dem Div an. Das Div hat nur ein width=960 im CSS. 
 
Ich habe den drei Teilen (Grafik oben, IFrame, Grafik unten) des Eventplaners jeweils einen eigenen Div Container gegeben um mal zu sehen woher der schwarze Abstand kommt. Ich vermute, der IFrame verschiebt sich etwas nach unten... 
 
Hier mal ein Bild wie es im schlimmsten Fall aussieht: http://www.speedclinic.de/shot_bug.JPG 
 
Wenn ich dem Div Container einen weissen Hintergrund gebe und in die Artikel einen Absatz einbaue, haben sich die Probleme vorerst gelöß. Man möchte aber schon gerne verstehen, woher der Fehler kommt :) Sonst kann man nicht schlafen...gell...vielen Dank nochmal für deine tolle Lösung...
 31 Geschrieben von: Armin Vieweg, am 21.03.2010 um 18:07
Hallo Speedclinic, 
 
also ich meine mich dunkel zu erinnern, dass es mal ein Problem mit p-Tags gab. Der IE macht dort andere Abstände als Firefox. Geb innerhalb der iFrames per CSS allen p-Tags mal einen festen Margin und ein festes Padding. 
 
Laut Firebug wären das momentan so: 
p { 
margin:16px 0 0; 
padding:0; 

 
Was ich so merkwürdig finde, dass der Fehler so unwillkürlich auftaucht. Mal ist er da, mal nicht. Also versuche mal das, wenn es dann nicht besser wurde meldest Du Dich einfach nochmal. 
 
Vielleicht per Mail, um die Kommentare nicht so voll zu spammen ^^ 
 
Gruß 
Armin
 32 Geschrieben von: Speedclinic, am 21.03.2010 um 18:46
Alles klar...werde ich versuchen...vielen Dank...kurze Frage: wo finde ich deine Mail Adresse? Einfach über Kontakt auf dieser Seite? Gruß
 33 Geschrieben von: Armin Vieweg, am 21.03.2010 um 18:50
Genau. Einfach über Kontakt. Im Impressum steht aber auch die Adresse selbst. 
 
Gruß 
Armin
 34 Geschrieben von: Sybok, am 24.03.2010 um 08:15
Ich sag Danke! Das Script funktioniert hervorragend! Genau das was ich gesucht habe! *thumbs up* 
 
MfG 
Götz
 35 Geschrieben von: qwert, am 31.03.2010 um 12:12
Das 2. Script kann ebenso wie das 1. nicht auf unterschiedlichen Domains funktionieren. Ob ich versuche von der einen Seite auf eine andere Seite von einer fremden Domain zuzugreifen oder anders herum ist doch egal. Auf die Daten hat man keinen Zugriff.
 36 Geschrieben von: Armin Vieweg, am 31.03.2010 um 13:54
Hallo qwert, 
Du hast absolut recht. Das funktioniert gar nicht. Ich habe den Artikel oben entsprechend angepasst. 
 
Tut mir leid, an alle für diese "Falschmeldung". 
 
Gruß 
Armin
 37 Geschrieben von: belma, am 30.08.2010 um 22:18
hallo armin, 
 
ich danke dir für diesen beitrag, du hast mir seeeeeeehr geholfen. 
ich finde es toll, dass du dein wissen mit uns teilst. 
Es funktioniert einwandfrei.
 38 Geschrieben von: Tobi, am 02.09.2010 um 21:00
Wow, das hat mir richtig weiter geholfen, das werde ich jetzt in meinen nächsten 30 jahren Karriere noch oft gebrauchn können ;) 
lg 
Tobi
 39 Geschrieben von: Armin Vieweg, am 02.09.2010 um 21:06
Oh mein Gott, ich hoffe nicht ;-)
 40 Geschrieben von: new2f7, am 05.12.2010 um 15:49
hey, ich habe mehrere iFrames auf meiner Seite und möchte das aber nur eins die Höhe automatisch anpasst. Wie muss ich die Zeile dann anpassen? 
 
var framefenster = document.getElementsByTagName("iFrame"); 
 
mein iFrame habe ich main genannt: 
 
 
 
kann mir jemand helfen?
 41 Geschrieben von: Armin Vieweg, am 06.12.2010 um 12:46
Hallo, 
 
var framefenster = document.getElementById('blubb'); 
 
wäre die neue Zeile. Das iFrame bräuchte dann die id="blubb". 
 
Schönen Gruß 
~Armin
 42 Geschrieben von: new2f7, am 06.12.2010 um 20:03
mmh ich glaub es klappt nicht 
es sieht jetzt bei mir so aus: 
 
var framefenster = document.getElementById('main'); 
 
und weiter unten: 
 
iframe src="main.html" width="960" id="main" frameborder="0" scrolling="no" align="left"  
 
(hab absichtlich weggelassen)
 43 Geschrieben von: Sascha, am 28.12.2010 um 19:38
Hallo Armin, 
 
AAAAlso erst mal Super. Ich weis nicht wie lange ich sowas gesucht habe. 
Egal, ich habe es abgelegt und rufe es nur noch auf. :-))) 
 
Ich habe die "400" auf "800" gesezt da ich eigentlich nur eine "onLoad" benötige. Oder geht eine "0" auch? 
Das Problem mit verschiedenen iframes habe ich auch und bekomme es auch nicht hin. 
Mein Problem ist dass ich den iframes verfallen bin ;-) . 
Und die, die Java abschalten sind selbst schuld.  
 
MfG 
Sascha
 44 Geschrieben von: Armin Vieweg, am 28.12.2010 um 20:44
Ja stimmt, das getElementById alleine reicht nicht. Man muss zudem die komplette For-Schleife rausnehmen und überall wo framefenster[i] aufgerufen wird das [i] wegmachen. 
 
Der Hintergrund ist, dass das originale getElementsByTagName ein Array zurückgibt (das sagt schon das Elements im Name, plural) und getElementById das iFrame-Objekt. 
 
@Sascha: Je höher diese Zahl, also der Interval ist, desto länger dauert es, bis die iFrames das erste mal angepasst werden. Wenn Du sie nur einmal anpassen möchtest, macht es mehr Sinn innerhalb der IF-Abfrage ein clearInterval zu machen. Das Ganze wurde ja mit einem Timer gestaltet, da wir nicht wissen wann der Inhalt des iFrame fertig geladen ist. Den Interval auf Null stellen, klappt gar nicht. 
 
Schönen Gruß 
Armin
 45 Geschrieben von: Sascha, am 29.12.2010 um 13:33
Danke.  
Wo ich Dein Script für alle Frames eingebaut habe läuft es absolut Top. 
Ich mach zwar einiges mit php, aaaber Java "???" nur min. Standart. 
Nun, da die Seite schon steht ;( ,also java. 
Da ich mich anscheinend etwas "dumm" stelle bekomme ich es nicht zum laufen. 
z.B. 
var framefenster = document.getElementsByTagName("xxFrame"); 
und  
"clearInterval" 
 
Wenn es nicht unverschämt ist, kannst Du da was zeigen? 
 
MfG 
Sascha
 46 Geschrieben von: Lothar, am 29.12.2010 um 13:44
Funktioniert super mit FF, IE und Chrome! Danke dafür. 
Nur bei Opera habe ich immer eine fixe Höhe von rund 150 px. 
Ja, Javascript ist eingeschaltet! 
Woran stört sich Opera? Eine Idee? 
 
Schönen Gruß 
Lothar
 47 Geschrieben von: PatrickBieri, am 21.01.2011 um 19:33
Hallo Armin 
 
Das Problem mit Opera habe ich auch! IE und FF funktionieren bestens. 
 
Hier meine Seite: portalpb.bplaced.net/kreativitaet/frame.html 
 
Wäre echt super nett, wenn ihr das noch rauskriegen würdet. Ich habe von sowas keine Ahnung und bin immer froh um solche Seiten wie ProfessorWeb. 
 
Gruss Patrick
 48 Geschrieben von: Jens, am 02.02.2011 um 21:52
Klasse Sache, funktioniert auch bei mir :-) 
 
www.jenskoenig.de 
 
Eine Frage: 
Bei deaktivierten Javascript wird ja bekanntlich die Seite abgeschnitten. 
Was kann man da machen? 
 
LG Jens
 49 Geschrieben von: Armin Vieweg, am 03.02.2011 um 09:50
Hallo Jens, 
 
eigentlich nur dem iFrame vorher eine recht große Höhe geben (z.B. 2000 Pixel). Andererseits hat ein iFrame auch ein Scrollbalken, wenn der Inhalt zu lang wird. Es werden also nie irgendwelche Inhalte gar nicht zugänglich. Etwas dynamisch ändern ohne JavaScript geht fast gar nicht - und das Script hier schon gar nicht. 
 
Ich hab aber die Erfahrung gemacht, dass gerade mal 2% aller User ohne JS unterwegs sind. Das ist also vertretbar. Außerdem sind User die JavaScript nicht kennen abgehärtet, was das Surfen im heutigen Netz angeht ;-) 
 
Schönen Gruß 
Armin
 50 Geschrieben von: Sebastian, am 04.02.2011 um 18:09
Hey, 
 
coole Sache mit dem Script. 
Getestet im IE 7, funktioniert super. Im FF Version 3.6.13 leider nicht, macht also das iframe mit einer Höhe von 0px. Hab dann einen border gesetzt, welchen man jetzt sieht. also sieht aus wie ne dicke linie. 
Hier mal der Link: http://www.ib-tenbieg.de/eintrachtforum/neu/forum.html 
 
Wäre echt nett wenn du mal gucken könntest oder mir sagen könntest woran es liegt. 
 
Gruß, Sebastian
 51 Geschrieben von: Sebastian, am 04.02.2011 um 21:31
hey, ich nochmal. 
auch im IE funktioniert es nur, wenn ich die Seite neu lade. Wenn ich aber im iframe einen link öffne, dann verändert sich die Höhe des iframes nicht automatisch. 
Vielleicht hast du ne Lösung für beide von mir genannten Fälle. 
 
Gruß, Sebastian
 52 Geschrieben von: Sebastian, am 06.03.2011 um 08:22
Warum bekomm ich keine Antwort? 
:(
 53 Geschrieben von: Armin Vieweg, am 06.03.2011 um 10:12
Sorry ist untergegangen. Wie ich schon mehrfach angemerkt habe, ist eine Mail mit konkreten Fragen besser, als hier in den Kommentaren. 
 
Zeigt der Link im iFrame auf eine externe Seite? Falls ja, wirst Du die Antwort oben im Artikel lesen. Falls nicht, müsste es eigentlich funktionieren. 
 
Mein Script setzt natürlich voraus, dass die Seite innerhalb des iFrame valide ist und sich nicht im Quirks-Mode befindet (was Dir leider nicht gegeben ist).
 54 Geschrieben von: Alex, am 04.06.2012 um 09:07
Gibt es mittlerweile eine Lösung für mehrere iFrames? 
Die ideen waren hier nur angerissen worden... 
Ich verwende zwei iframes auf meiner Seite und möchte aber, dass nur eines davon automatisch an die Höhe angepasst wird. 
Das Script lädt die Höhe aber aus dem anderen iframe - dumm.. 
Wie kann man bestimmen, dass nur ein iframe mit der eigenen Höhe angepasst wird?
 55 Geschrieben von: Armin, am 04.06.2012 um 10:27
Schreibe das als erstes in die For-Schleife: if (framefenster[i].className == 'ignore') return; 
Danach geb dem iFrame, der ignoriert werden soll class="ignore". Bei der Verwendung von className muss der Class-String exakt identisch sein. Also class="baum ignore" würde die Condition nicht erfüllen. 
 
Gruß 
Armin
 56 Geschrieben von: Michael, am 16.07.2012 um 10:20
Hi, 
vielen vielen Dank für das Script. Das ist wirklich genial. Und dabei hab ich schon ewig gesucht. 
Ein kleines Problem im IE, das zwar schon beschreiben wurde, aber ohne Antwort. 
Im IE wird die größe zwar angepasst, jedoch erscheint rechts ein scrollbalken, mit minimaler Scrollfunktion. Ich schätze mal es reicht aus, wenn man Scrollhöhe + 5px macht. Wenn ich das aber im Script so platt schreibe wird der Kasten morzgroß. 
Wo kann ich diesen Puffer reinschreiben? Hab nicht wirkliche JS Kenntnisse und try & error hat diesmal leider nix gebracht. 
Vielen Dank schon mal ! 
VG Michael 
P.S. Seite ist erst lokal.
Letzte Aktualisierung ( Mittwoch, 31. März 2010 )
 
< Zurück   Weiter >