DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   JavaScript / DHTML / AJAX (http://www.daniweb.com/forums/forum117.html)
-   -   Dynamic iFrame height, not working in ie without refresh. (http://www.daniweb.com/forums/thread71494.html)

Saion Mar 3rd, 2007 9:06 am
Dynamic iFrame height, not working in ie without refresh.
 
When i try to dynamically change the height of an iframe in ie through
a java-script to match its content (a html page containing a flash
movie), it doesn't resize the iframe at first, but when i reload the
same page into the iFrame it resizes as planned, how come? Any ideas?
This script works well in firefox, safari and netscape, but i cant get
it to work in ie(8, 7). And i get the same problems with every
resizing script i've tried.

This is the script i use:

<script type="text/javascript">
function adjustIFrameSize(iframe)
{
if ( iframe.contentDocument ) // firefox
{
iframe.height = iframe.contentDocument.height;
}
else // IE
{
iframe.style.height =
iframe.contentWindow.document.body.scrollHeight;
}

}


</script>
The iframes:

<iframe src="centriaMenu.php" name="menu" WIDTH="800" HEIGHT="200"
hspace="0" frameborder="0" marginheight="0" marginwidth="0"></IFRAME>

<iframe src="<?php print $_POST[fileName]?>" name="contents"
onload="adjustIFrameSize(this);" id="contents" height="200"
WIDTH="800" frameborder="0" marginheight="0" marginwidth="0" ></
IFRAME>

I have a flash menu in the first iframe, the buttons on the menu uses
getURL(siteToLoad, "contents") to load another html-page into the
iframe "contents".

Is it possible to make the iFrame refresh automatically though
javascript so that i just refreshes the iframe once? Everytime ive
tried that it just ends up in a never ending refresh-loop... How can i
make this work? Is there any better script for resizing (and
refreshing after resize) the iframe height so that it matches to its
content? Please, i've been stuck with this problem for some days
now...

// Max

swamp_safari Mar 11th, 2007 2:29 pm
Re: Dynamic iFrame height, not working in ie without refresh.
 
I got exactly same problem today. IE sucks.

Here is my solution. This works for both IE and firefox.

html
<iframe id="myframe">
<div id="content">
</div>
</iframe>

Javascript
height = document.getElementById("content").offsetHeight;
document.getElementById("myframe").height = height;

Let me know if this works or not

h_aboulela Oct 24th, 2007 1:42 pm
Re: Dynamic iFrame height, not working in ie without refresh.
 
Thanks a lot for both of you!!! I had the same problem but It's now working! :)

CoolCow Nov 14th, 2007 9:29 am
Re: Dynamic iFrame height, not working in ie without refresh.
 
Quote:

Originally Posted by swamp_safari (Post 328092)
I got exactly same problem today. IE sucks.

Here is my solution. This works for both IE and firefox.

html
<iframe id="myframe">
<div id="content">
</div>
</iframe>

Javascript
height = document.getElementById("content").offsetHeight;
document.getElementById("myframe").height = height;

Let me know if this works or not



Used your trick but it dousn't seem to work (using IE 7)
It looks like document.getElementById("content") returns NULL, so there's no reference to the object. probably because it's inside the iframe tags and that's only shown when the browser dousn't support frames.
Can you help me figure out how to get this to work?

MidiMagic Nov 15th, 2007 1:54 am
Re: Dynamic iFrame height, not working in ie without refresh.
 
You opened the "height" can of worms, and now the only way to recan them is to get a bigger can.

First of all, whether the getElementById gets the correct value depends on how that value got there.

- The value is available if it got there through rendering of the original web page, or if it was set by the JavaScript program.

- A former value is returned if some dynamic content other than the JavaScript changed the attribute. An example is a div resizing itself to hold an object that was not loaded when the original page was rendered.


All times are GMT -4. The time now is 11:41 pm.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC