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
Optimale Höhe des IFrames
dynamisches Iframe Java script
Hallo !
Der Aufruf des scriptes erfolgt dann :
Jetzt liegt es hier nochmal
Es muß im Header enthalten sein
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>
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
Code: Select all
Last edited by juergen on Thu 2. Feb 2006, 07:25, edited 1 time in total.
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.
Oder hat jemand diese Problem schon einmal gelöst?
Gruß Knut
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.
Oder hat jemand diese Problem schon einmal gelöst?
Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
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.
Zumindest bei mir funktioniert es erst, seitdem ich das gemacht habe.
Hi hmw,
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
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).hmw wrote:Zumindest bei mir funktioniert es .....
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 )
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.flip-flop wrote:Mich würde interessieren wie Du das gemacht hast./
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/