Frame Höhe ermitteln!

  • Themenstarter Themenstarter spex
  • Beginndatum Beginndatum
S

spex

Tach,

gibt es eine Möglichkeit die Höhe der Seite in einem
Frame zu ermitteln damit die Framehöhe sich automatisch der Seitenhöhe in dem Frame anpasst?

MfG sp
 
Hab jetzt ne Lösung gefunden. Funktioniert aber nur in InternetExplorer und Opera!

HTML:
<script>
function anpassen()
{
  document.getElementById('iframe').style.height = document.getElementById('iframe').document.getElementById('inhalt').offsetHeight + 'px';
}
</script>

<body>
<table width="100%" border="0">
.
.
.

<td>
<iframe id="iframe" frameborder ="0" scrolling=no name="show" width="730" style="height:5px" onLoad="anpassen()"></iframe>
</td>
</tr>
</table>
</body>

Hier die Datei die im Frame angezeigt wird:
HTML:
<body>

<div id=inhalt>
<table border="0" width="730">
<tr>
<td id=h1>Spanien, Teneriffa</td>
</tr>
</table>
</div>

</body>

Wennich in Firefox nun einen alert ans Ende der Funktion schreibe, etwa so:

HTML:
<script>
function anpassen()
{
  document.getElementById('iframe').style.height = document.getElementById('iframe').document.getElementById('inhalt').offsetHeight + 'px';
alert('IRGENDWAS');
}
</script>

Dann funktioniert es, bitte, kann mir denn keiner helfen
 
Hallo,

zwar kann ich Dir nicht helfen aber dieses Forum scheint nicht oft besucht zu werden, da ich schon ein paar Fragen gestellt habe und kaum Feedback bekam. Das Flash Forum hier ist super aber das HTML-Forum und dieses scheinbar nicht...
 
Hi,

versuchs mal mit folgendem Konstrukt:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function anpassen(){
  document.getElementById('iframe').style.height = top.show.document.getElementsByTagName("body")[0].offsetHeight + 'px';

  // Alternative
  //document.getElementById('iframe').style.height = top.show.document.getElementById("inhalt").offsetHeight + 'px';

  // Folgende Zeile kann zur Kontrolle auskommentiert werden
  //alert(document.getElementById('iframe').style.height);
}
 //-->
</script>

</head>
<body>
<iframe src="datei.html" id="iframe" frameborder ="1" scrolling="no" name="show" width="730" onload="anpassen();"></iframe>
</body>
</html>
datei.html:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
  <!--
*{ margin: 0; padding: 0;}
 //-->
</style>
</head>
<body>
<div id="inhalt">
	<table border="0" width="730">
	  <tr>
	  	<td id=h1>Spanien, Teneriffa</td>
	  </tr>
	</table>
</div>
</body>
</html>
Ciao
Quaese
 
So ich hab jetzt die beiden Lösungen von Quaese und mir kombiniert, da es ja meinst der Fall ist das ein einzelner Browser aus der Reihe tanzt und eine Sonderbehandlung braucht.

Getestet mit Opera9.22, Firefox2, IExplorer7

main.html:
HTML:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function anpassen(frameid)
{
	if(navigator.appName != 'Netscape')
	{
		document.getElementById('frameid').style.height = 
		frames['frameid'].document.getElementById('inhalt').offsetHeight + 30	+ 'px';
	} else {
		document.getElementById('frameid').style.height = 
		top.show.document.getElementsByTagName("body")[0].offsetHeight + 30 + 'px';
	}
}
 //-->
</script>

</head>
<body>
<iframe src="datei.html" id="iframe" frameborder ="1" scrolling="no" name="show" width="730" onload="anpassen('iframe');"></iframe>
</body>
</html>

datei.html:
HTML:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
  <!--
*{ margin: 0; padding: 0;}
 //-->
</style>
</head>
<body>
<div id="inhalt">
	<table border="0" width="100%">
	  <tr>
	  	<td id=h1>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br>ZEILE<br></td>
	  </tr>
	</table>
</div>
</body>
</html>

Als erstes wird überprüft welcher Browser verwendet wird, dann wird jenachdem welcher Browser erkannt worden ist, die entsprechende Prozedur ausgeführt.

So sollte es funktionieren!

Mit freundlichen GrezZ sp³x
 

Neue Beiträge

Zurück