Optimale Höhe des IFrames

Get help with installation and running phpwcms here. Please do not post bug reports or feature requests here.
Post Reply
penkman
Posts: 8
Joined: Thu 1. Dec 2005, 01:02

Optimale Höhe des IFrames

Post by penkman »

Hallo!

Habe in den Hauptblock meiner Seite ein Forum per IFrame eingebunden. Die PHP-Datei des Forums liegt auch auf meinem Server. Das Problem an der Sache ist dass, die Höhe des IFrames immer genau der Höhe des Forums sein soll. Durch neue Foreneinträge ändert es sich natürlich ständig. Wie bekomme ich das hin? Die Höhe des IFrames auf 100% setzen habe ich schon probiert, das klappt nicht.

Vielen Dank schonmal!

Grüße,

penkman
Pappnase

Post by Pappnase »

hallo

irgendwoe im forum liegt ein js script rum was das automatisch macht!
wenn ich nur wüsste wo :-(

schau einfach mal im hacks froum vorbei.
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

dynamisches Iframe Java script

Post by juergen »

Hallo !

Code: Select all

/***********************************************
* IFrame SSI script II- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//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=["myframe1", "myframe2", "myframe3", "myframe4", "myframe5"]


//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=getFFVersion>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers



function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight+45;
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}

if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller

</script>
Der Aufruf des scriptes erfolgt dann :

Code: Select all

<iframe id="myframe1" src="http://......./index.php" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; width:700; display:none"></iframe>



Jetzt liegt es hier nochmal :-)

Es muß im Header enthalten sein
Last edited by juergen on Thu 2. Feb 2006, 07:25, edited 1 time in total.
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Post by flip-flop »

Hi penkmann,

hier ein Script: http://www.phpwcms.de/forum/viewtopic.php?p=46460#46460
und noch ein Script: http://www.phpwcms.de/forum/viewtopic.p ... ght=iframe
und noch ein Script: http://www.dynamicdrive.com/dynamicindex17/indexb.html

Alle habe aber eines gemeinsam: Dein Problem wird damit leider nicht gelöst.
Der este Aufruf funktionirt natürlich mit autom. angepasster Höhe, wird danach aber intern im aufgerufenen Programm gelinkt, erfährt die IFrame-Funktion davon nichts.
Du müsstest die aufgerufene Software bei den internen Linkaktionen erweitern, damit die externe IFrame-Funktion angesprochen wird. :cry:

Oder hat jemand diese Problem schon einmal gelöst?

Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
hmw
Posts: 90
Joined: Fri 18. Feb 2005, 10:35
Contact:

Post by hmw »

Ich hatte das gleiche Problem und bin mit der Zeit dahintergekommen, dass diese Scripts offenbar nur dann reibungslos funktionieren, wenn die Quelle für den IFrame innerhalb des PHPWCMS zu finden ist, d. h. dass man z. B. ein Forum komplett in einem eigenen Unterverzeichnis von PHPWCMS einrichten muss.

Zumindest bei mir funktioniert es erst, seitdem ich das gemacht habe.
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Post by flip-flop »

Hi hmw,
hmw wrote:Zumindest bei mir funktioniert es .....
das ist interessant. Ich habe es bisher nicht geschaft dieses Verhalten der dynamischen Größenänderung in den Griff zu bekommen. (Bei mir bestimmt irgendwann die längste Seite die Höhe).
Das kann eigentlich auch nicht funktionieren. Der Scriptteil im Content stößt die Berechnung der Höhe im Header-Script an. Das funktioniert natürlich beim ersten Aufruf des IFrame.
Arbeitet die Seite im IFrame in sich geschlossen, wie das ein Forum tut oder auch eine statische Seite, wird das Script im Content nicht mehr aufgerufen und kann auch ihrerseits das Script im Header deshalb nicht ansprechen. - Dabei ist es eigentlich egal wo die IFrame-Site liegt.

Mich würde interessieren wie Du das gemacht hast.

Ich habe hier http://www.sedes-bau.de/wps.phtml eine Krückenlösung gebastelt. Dabei ist die komplette interne Verlinkung im IFrame durch das CMS ersetzt. (Sieht man an der Navi-Leiste links). So werden auch die Höhen immer neu berechnet.
Das sind natürlich statische Seiten -(Archiv). Ist auch nur möglich mit Seiten auf die ich Quellzugriff habe.

Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
hmw
Posts: 90
Joined: Fri 18. Feb 2005, 10:35
Contact:

Post by hmw »

flip-flop wrote:Mich würde interessieren wie Du das gemacht hast./
Ich bin eher zufällig darauf gekommen, weil ich ein kleines Script (news) von Anfang an innerhalb des CMS installiert hatte und das Forum extern. Nachdem das mit den News im Iframe funktioniert hat und das Forum nicht, habe ich das Forum auch dorthin verlegt und seitdem geht alles wie gewünscht.

Dabei scheint es keinen Unterschied zu machen, welches der oben vorgeschlagenen Iframe-Scripts man benutzt.

Siehe "Aktuelles" und "Bürgerforum" auf der Seite http://www.csu-neuching.de/
Post Reply