Problem mit iframe im template

mnreptilien
Habe mein Wbb Forum erweitert das funktioniert auch wunderbar habe nur einen kleinen Schönheitsfehler den ich schon seit tagen versuche auszumerzen es aber nicht hinbekomme.

Und zwar möchte ich eine HTML Seite per iframe in ein template des wbb einfügen das geht auch aber es währe schöner wenn sich die höhe des frames der webseite anpassen würde

weis da jemand rat ??? oder sogar eine bessere lösung

Danke im voraus

der von mir verwendete template code ist folgender :


php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tabletitle" align="left"><span class="normalfont"><b>{$lang->items['LANG_GLOBAL_REPINFO']}</b></span></td>
 </tr>
 <tr align="left">
  <td class="tablea">
<iframe src="../page/startinfo.htm" name="I1" width="100%" marginwidth="0" marginheight="0" height="500">http://mn-reptilien.de/page/startinfo.htm</iframe>
</td>
 </tr>
</table>


der code der php
php:
1:
2:
3:
4:
5:
6:
7:
8:
<?php


$filename 'repinfo.php';

require('./global.php');
eval("\$tpl->output(\"".$tpl->get("Repinfo")."\");");
?>
Crashy
na da wo du width0100% drinne hast machst davor noch height="100%" wenn es sohoch werden soll ansonsten wneiger smile
mnreptilien
nein bei der 100% das hab ich schon versucht das macht er nicht die ist dann ca nur 200 pixel hoch

oder kann ich das nicht so machen das der per php erst das vorgefertigte template mit dem Kopf läd , dann die html seite per tabelle so wie im template nur mit include und dann den footer template ????

sorry fange erst gerade an mit php rum zu experimintieren
Crashy
es gibt hier den hack eigene seite fürs wbb2.3 glaube von bräke da kannst du mit eigene seiten machen und die dann mit inhalt füllen haben dann den header ect. drinne und da kannsu dann iframe reinmachen smile
mnreptilien
prinzipiel ist das ja sogar das selbe aber dann hätte ich den selben fehler
Crashy
Zitat:
Original von mnreptilien
prinzipiel ist das ja sogar das selbe aber dann hätte ich den selben fehler
naja die eigene seite öffnet er in fenster größe und der rest wird übers iframe angepasst und das mit der höhe muss definitiv klappen machtsbei mir ja auch
mnreptilien
ergebniss wenn ich es so machen http://mn-reptilien.de/wbb2/repinfo.php



code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tabletitle" align="left"><span class="normalfont"><b>{$lang->items['LANG_GLOBAL_REPINFO']}</b></span></td>
 </tr>
 <tr align="left">
  <td class="tablea">
<iframe src="../page/startinfo.htm" name="I1" height="100%" width="100%" marginwidth="0" marginheight="0">http://mn-reptilien.de/page/startinfo.htm</iframe>
</td>
 </tr>
</table><br />
chrime
Ist auch volkommen klar, aber wenn man sich nicht genau dein vorhaben durchliest kann man auch nur stuss reden,

Es geht darum das der iFrame immer so hoch sein soll das die eingebundene Seite darein passt. Das geht leider nicht. du musst dir etwas anderes ausdenken.
lycoos
Mache doch ein Link mit einem schönen kleinen Popup das sieht auch ganz gut aus....
mnreptilien
wie könnte ich die seite den in die php datei einbinden???das ich sie zwischen den beiden templates header und footer lassen kann

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?php


$filename 'repinfo.php';

require('./global.php');
eval("\$tpl->output(\"".$tpl->get("Repinfo")."\");"); //die seite nur mit header bis zur ersten tabelle
 // die frame seite 

eval("\$tpl->output(\"".$tpl->get("footer")."\");"); : // nur der footer

?>


greez
Schweinebacke
Lösung über JS:
Das iFrame wird auf die Höhe der Fenstergröße (screen.height) gesetzt. In dem Beispiel werden allerdings 250px abgezogen, da das iFrame ansonsten zu groß wird. 250px reichen normal für alle Symbolleisten aus, die man so auf dem Bildschirm hat.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<script type="text/javascript">
function hoch () {
  document.getElementById("frame").height = screen.height-250;
}
window.onload=hoch;
</script>
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tabletitle" align="left"><span class="normalfont"><b>{$lang->items['LANG_GLOBAL_REPINFO']}</b></span></td>
 </tr>
 <tr align="left">
  <td class="tablea">
<iframe src="../page/startinfo.htm" name="I1" id="frame" width="100%" marginwidth="0" marginheight="0" height="500">http://mn-reptilien.de/page/startinfo.htm</iframe>
</td>
 </tr>
</table>
mnreptilien
Zitat:
Original von Schweinebacke
Lösung über JS:
Das iFrame wird auf die Höhe der Fenstergröße (screen.height) gesetzt. In dem Beispiel werden allerdings 250px abgezogen, da das iFrame ansonsten zu groß wird. 250px reichen normal für alle Symbolleisten aus, die man so auf dem Bildschirm hat.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<script type="text/javascript">
function hoch () {
  document.getElementById("frame").height = screen.height-250;
}
window.onload=hoch;
</script>
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tabletitle" align="left"><span class="normalfont"><b>{$lang->items['LANG_GLOBAL_REPINFO']}</b></span></td>
 </tr>
 <tr align="left">
  <td class="tablea">
<iframe src="../page/startinfo.htm" name="I1" id="frame" width="100%" marginwidth="0" marginheight="0" height="500">http://mn-reptilien.de/page/startinfo.htm</iframe>
</td>
 </tr>
</table>
geht das nicht auch auf die höhe der anzuzeigenen datei
bsp der inhalt der im frame geladene seite hat 600 pixel höhe also stellt sich die höhe auf 600 die 2 seite die per link geöhnet wird hat eine höhe von 300 pisel also stellt sich das frame auf 300
Schweinebacke
habe da ne Seite für dein iFrame gefunden:

iFrame passt sich an:
mnreptilien
Zitat:
Original von Schweinebacke
habe da ne Seite für dein iFrame gefunden:

iFrame passt sich an:


das ist eigendlich genau das was ich suche nur noch das richtig umsetzen
Schweinebacke
Ich gehe mal davon aus, dass du mit dem umsetzten eine Hilfe gemeint hast.
Und wenn nicht gibt es ja auch eventuell Andere die es verwenden wollen.

Geht alles im Template. Das Scrip muss nicht zwingen in den Header.

Sieht dann für dein Template so aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
<script type="text/javascript">
<!--
function pruefe() {
   if(document.all&&!window.opera) {
     var a=document.all.detail;
     detail.document.body.scroll='no';
   } else {
     var a=document.getElementsByName('detail')[0];
     a.scrolling='no';
   }
   var a=document.getElementsByName('detail')[0];
   detail.document.getElementsByTagName('body')[0].style.overflow='hidden';
   var b=detail.document.getElementById('cont');
   if(a.style.height != eval(b.offsetHeight+35)+'px') {
      a.style.height=eval(b.offsetHeight+35)+'px';
   }
}
//-->
</script>
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tabletitle" align="left"><span class="normalfont"><b>{$lang->items['LANG_GLOBAL_REPINFO']}</b></span></td>
 </tr>
 <tr align="left">
  <td class="tablea">

<iframe onLoad="pruefe()" src="../page/startinfo.htm" width="100%" id="detail" name="detail" marginwidth="0" marginheight="0" ></iframe>
</td>
 </tr>
</table>


Wichtig das onLoad="pruefe()" für den Scriptaufruf und den Framenamen im iFrame-Tag (name="detail").

Das Ganze funktioniert nur wenn in den zu ladenden Seiten ins iFrame die id="cont" steht.
Der Autor verwendet da ein div-Bereich mit der id. Kann man aber auch in den body-Tag setzen.
(<body id="cont">) Das muss in allen Seiten rein, ansonsten funktioniert das Script nicht.

Das war´s schon – müsste gehen. Augenzwinkern

Ach ja - bei den Verweisen zum iFrame den Namen nicht vergessen.
<a href="../page/startinfo.htm" target="detail"> xxxx </a>

javascript="Gernot Back"