Größenanpassung für Iframe - Codebug

If you've problems with unsupported - non official ;-) - functionalities use this forum please.
jpsaenz
Posts: 23
Joined: Sun 13. Jun 2004, 14:13

Post by jpsaenz »

@fli-flop: wahrscheinlich hast Du recht (Du als User hattest neulich auch nicht gemerkt, daß die max. Höhe auf 700px. fix eingestellt war) Das mit dem Back-Button im emAlbum hatte ich auch gemerkt, ich werde wahrscheinlich eine Backfunktion mit Java einbauen (das Script ist sehr gut, wird aber leider seit einiger Zeit nicht weiterentwickelt) Ich bin insgesamt mit der IFRAME-Lösung unzufrieden, ich fände es besser, das ganze direkt einzubauen - das geht aber leider nicht bzw. nicht ohne einen riesigen Aufwand.

Saludos,
Juan-Pablo
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Post by flip-flop »

Hi jpsaenz,
Du solltest noch etwas mehr als 700px einstellen, da einige Bilder erst im iFrame rollen und dann erst die Seite.

Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
pepe
Posts: 3954
Joined: Mon 19. Jan 2004, 13:46

Post by pepe »

Hi jpsaenz,

ich habe mal deine Site angesehen und finde das script für die Berechnung der Höhe garnicht im HTML Head...

Hab ich was übersehen, oder fehlt es?

Wenn 1. ... wo hast du es versteckt?

Wenn das 2. der Fall sein sollte... kann ja die Höhe auch nicht automatisch berechnet werden... :wink:
jpsaenz
Posts: 23
Joined: Sun 13. Jun 2004, 14:13

Post by jpsaenz »

@pepe: naja, nach ein Paar Tests habe ich es wieder rausgenommen - man möchte schliesslich auch seine Ordnung haben ;-) Der Script hatte ich im <head> drin...

@Fli-Flop: ja, der IE scheidet mir die Seite etwas früher als Firefox... mit letzterem sind alle Bilder ok...
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Post by flip-flop »

fli-flop wrote::D<!--
function calcHeight(){
//find the height of the internal page
var the_height= document.getElementById('iframename').contentWindow.document.body.scrollHeight+22; //hier einfach 22HE dazu und es passt ;)

//change the height of the iframe
document.getElementById('iframename').height=the_height;
}
//-->
Genau deshalb die +22 für den IE

Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
jpsaenz
Posts: 23
Joined: Sun 13. Jun 2004, 14:13

Post by jpsaenz »

Ich glaube, es liegt einfach daran, daß Apache es nicht zulässt, daß ein Script, welches woanders läuft, sich dem System nur annähert. Deswegen die Meldung vom IE ("Zugriff verweigert"). Jedenfalls habe ich meine Photoseite umgezogen, so daß sie nun auf dem selben Server läuft wie phpwcms, und nun geht es. :D

Danke an alle, die sich das mal angeguckt haben!

Saludos,
Juan-Pablo
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Post by flip-flop »

Hi Juan-Pablom,

[Klugscheiß ein]
als Sub-Domain wird aber in der Regel eine Unter-Domain (Sub-Ordner) der selben Domain bezeichnet. (sub.domain.tld)
Alles andere ist eigentlich eine Fremd-Domain.
[/Klugscheiß aus]

Apache: Das liegt wohl eher an den Sicherheitseinstellungen des IE. Schon kurios. Ms erfindet den iFrame genau für diese Zwecke und später sperren sie sich dagegen.


Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Vuk
Posts: 6
Joined: Sun 11. Mar 2007, 13:25

Post by Vuk »

flip-flop wrote::D Mit dem FF funktioniert es bei mir auch nicht.
Aber es gibt eine Lösung für IE und FF. (Opera leider nicht).

Dieses JS-Script kommt in den Head-Bereich der Vorlage für den iFrame:

Code: Select all

<script language="javascript">
<!--
function calcHeight(){
//find the height of the internal page
var the_height= document.getElementById('iframename').contentWindow.document.body.scrollHeight+22; //hier einfach 22HE dazu und es passt ;)

  //change the height of the iframe
  document.getElementById('iframename').height=the_height;
}
//-->
</script>
Hallo!

Alter Thread aber aktuelles Problem:

Dieses Skript, wie auch das von chip_rider funktionieren bei mir durchaus recht gut (auch mit FF) wenn ich damit eine "simple" HTML-Datei aufrufe.

Aber rufe ich damit eine Seite auf, deren Layout durch CSS und diverse DIVs erzeugt wird, haben die Skripte unter FF anscheinend Probleme die korrekte Höhe über "document.getElementById('iframename').contentWindow.document.body.scrollHeight" auszulesen. Mit dem IE kein Problem.

Jetzt lautet die Antwort: Dann bau die Seite gefälligst so auf, dass das sauber funktioniert, du Nuss.
Da ist was dran, allerdings rufe ich damit ein PHP-Skript auf (Skript ist etwas untertrieben, ist ein ganzes CMS in sich), welches ich nicht selbst geschrieben habe (was ich auch nicht ansatzweise könnte als PHP-Fussgänger) und somit habe ich auf den Aufbau der Seite auch nicht wirklich tiefgreifend Einfluss.


Daher eine kurze Idee ob man das so lösen könnte:

Ich weiss ja nicht genau wie das Script an die Höhe der im iFrame "iframename" aufgerufenen Seite kommt. (contentWindow.document.body.scrollHeight ?) Liest es <body> der Seite? Wenn ich dem aufgerufenen PHP-Skript eine feste Größe in <body> gebe funktioniert es zumindest wunderbar. Wenn es aber nun "automatisch" ohne feste Angabe nicht klappt, kann man das JavaScript so erweitern, dass es im Dokument in "iframename" wiederum ein bestimmtes Element rauspickt, nämlich die Grösse eines bestimmten DIVs? Das heisst in dem Fall "content" und dessen Höhe würde das korrekte Ergebnis liefern. Ggf. könnte man auch noch auf andere DIVs ausweichen.


Da ich von JavaScript null Ahnung habe, daher noch einmal meine Frage an Zeitgenossen mit Durchblick in Kurzform: Lässt sich die Höhe eines bestimmten Elementes in der im iFrame aufgerufenen Seite auslesen?

Zusatz:
Die Möglichkeit im Template des PHP-Skriptes rumzubasteln um dort ebenfalls ein Script unterzubringen, welches dort über getElementById() die Höhe eines Elementes ausliest, um sie beim Aufruf zu übergeben bestünde, falls man dort so nicht dran kommt.


Ich bin sehr gespannt und danke schon jetzt für Anteilnahme und Antworten.


Vuk
intentionally left blank
culda_a
Posts: 521
Joined: Tue 28. Feb 2006, 01:39
Contact:

Post by culda_a »

to bad that this post is not in english
ImagePackging design,labels, catalogs,postcards,
Vuk
Posts: 6
Joined: Sun 11. Mar 2007, 13:25

Post by Vuk »

culda_a wrote:to bad that this post is not in english
English? OK, I'll do my very best, Miss Sophie:


Hello!

Old thread, current problem:

This script, like the one chip_rider posted works (in Firefox as well), if I use it to resize an iframe, displaying a "simple" html-page.

But if I use it (with FF) to resize an iframe displaying a page built with css and many divs, the script seems to have problems to get the actual height of the page, useing "document.getElementById('iframename').contentWindow.document.body.scrollHeight". The Internet Explorer has no problems.

Now the answer is: So, code your page in a proper way, according to the standards, dumbass.
Yes Sir, but the PHP-Script I want to display in the iframe is part of an other complex cms, which I did not write. (And I would not nearly be able to do so.) So I have limited control of the pagedesign.


So here is my idea (considering, that I have NO idea about javascript):

I don't know how the script gets the height of the document in the iframe "iframename"... (contentWindow.document.body.scrollHeight ?) Does it read the <body> of the page to display? I tried to give the <body> of the page a fixed height and then the script works well. But if it doesn't work "automatically", when no fixed height of the <body> is given, is it possible to modify the javascript, so that it reads another specific element of the page in the iframe? In this case this element would be a div named "content". It's height would be the right height to resize the iframe to.

So in short form: Is it possible to use javascript to get the height of a specific DIV of the page in the iframe, to use it in oder to resize the iframe?


ps: There would also be the possibility to modify the template of the cms, displayed in the iframe and to place a javascript there which does the job and hands the var to a script that resizes the iframe if this is the way it has to be done.


I am very curious if there is a solution and say thank you for answers and for your concern.

Vuk
intentionally left blank
Post Reply