Page 1 of 1
Optimale Höhe des IFrames
Posted: Wed 1. Feb 2006, 19:51
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
Posted: Thu 2. Feb 2006, 04:04
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.
dynamisches Iframe Java script
Posted: Thu 2. Feb 2006, 07:20
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
Posted: Thu 2. Feb 2006, 07:22
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.
Oder hat jemand diese Problem schon einmal gelöst?
Gruß Knut
Posted: Thu 2. Feb 2006, 09:18
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.
Posted: Thu 2. Feb 2006, 09:42
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
Posted: Thu 2. Feb 2006, 10:18
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/