Register  |  Login

Question Details    

   Question

Time: 18:10 - Aug 11, 2006     Asked by: john2      Status: Answered      Points: 75   

How do I vary the height on an inline frame based on the content inside?

I want to use inline frames on my site, but the problem is that the content pages that will be sourced into the frame's height will change depending on what data is displayed. Is there any way to change the inline frame's height depending on what page is showing inside?

Ask a New Question

Become a Quomon Expert

Current Categories

 

Similar Questions


   

Answer Discussion
Answer Discussion
Answer Summaries
Answer Summary
 
John, there seems to be no obvious way to achieve this, but I managed to get the following to work:

This is the iframe element in the body section of the mother page:
 <iframe name="iframetest" id="iframetest" src="test1.html" onload="size_iframe()"></iframe>

This is the javascript function that will be called when the page is loaded inside the iframe:
function size_iframe()
{
 x = document.getElementById("iframetest");
 y = frames.iframetest.document.getElementById("iframecontent");
 if (document.all) // IE problem; wont show clientHeight if style height hasn't been set
  y.style.height = "1px";
 margin = 30;
 x.style.height = parseInt(y.clientHeight + margin) + "px";
}
The script will set the HEIGHT of the iframe to that of the content of the child page. It has to add a margin (depends both of the child page and of the browser, but 30 should do).

The only thing you NEED to do is to fit the actual content of the child page (test1.html) inside a DIV tag like this:
<body>
 <div id="iframecontent">
  test file to load inside the iframe<br>
  can be of variable height
 </div>
</body>

Otherwise, I couldn't get it to work. The BODY element doesn't seem to want to report its clientHeight.
This example has been tested in IE6 and FF 1.5

Hope it is useful, - if you want me to change it according to your needs, please say so.

Jakob

Expert:

jgivoni

Date:

Sep 16, 2006

Time:

19:41

 

Votes: Good (0) | Bad (0)
Login to rate this answer

Question Answered

This question has been answered, and points have been rewarded to the following experts:

jgivoni: 75

You're welcome however to comment or give additional information or if you wish, you have the ability to write an Answer Summary for this question by clicking on the "Answer Summaries" Tab.

 
No summaries have been submitted yet. Want to be the first?



Respond to this question:

New User

  Email:

Upon submission of this form, you will automatically be registered as a Quomon user and we will send your login information to this address

Registered User

Username:

Password:


Forgotten Password

 

New User

  Email:

Upon submission of this form, you will automatically be registered as a Quomon user and we will send your login information to this address

Registered User

Username:

Password:


Forgotten Password

   

"Psst, Quomon is a great site. Pass it on."     Tell a Friend  |   Link To Us  |   Save to Delicious  |   Digg! Digg it


All Questions


Language Options

English:

www.quomon.com

Español:

www.quomon.es

Sponsors

Questions and Answers Software
Real Estate Postcards
Marketing Fulfillment