Results 1 to 3 of 3
  1. #1
    Join Date
    Nov 2007
    Posts
    144
    Tokens
    0

    Default iFrame Height Of Content

    Hi,

    Everybody knows this script, that makes the content iframe stretch to the height of whats inside even after a link being pressed, But i've been trying to get one to work for around a month, nothing seems to work

    Can anybody help!?

  2. #2
    Join Date
    Dec 2007
    Posts
    1,683
    Tokens
    0

    Latest Awards:

    Default

    Quote Originally Posted by Echo54321 View Post
    Hi,

    Everybody knows this script, that makes the content iframe stretch to the height of whats inside even after a link being pressed, But i've been trying to get one to work for around a month, nothing seems to work

    Can anybody help!?
    Give us a better description, paste us the code of the iframe.

    I have edited one from dynamicdrive for you, with the iframe code.

    PHP Code:
    <script type="text/javascript">

    /***********************************************
    © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
    ***********************************************/

    //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=["dynamic-frame"]

    //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=parseFloat(getFFVersion)>=0.116 //extra height in px to add to iframe in FireFox 1.0+ browsers

    function resizeCaller() {
    var 
    dyniframe=new Array()
    for (
    i=0i<iframeids.lengthi++){
    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.alldocument.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
    else if (
    currentfr.Document && currentfr.Document.body.scrollHeight//ie5+ syntax
    currentfr.height currentfr.Document.body.scrollHeight;
    if (
    currentfr.addEventListener)
    currentfr.addEventListener("load"readjustIframefalse)
    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(iframeidurl){
    if (
    document.getElementById)
    document.getElementById(iframeid).src=url
    }

    if (
    window.addEventListener)
    window.addEventListener("load"resizeCallerfalse)
    else if (
    window.attachEvent)
    window.attachEvent("onload"resizeCaller)
    else
    window.onload=resizeCaller

    </script
    - Don't ask me why I put it in a php thing.

    Then the iframe..

    PHP Code:
    <iframe id="dynamic-frame" name="dynamic-frame" src="some-page.php" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; width:100%; display:none"></iframe
    I can't remember if it use's ID or NAME, because the Dynamicdrive iframe pastey thing did not include it, I added the name bit, with both in place it should work.. Good luck!

  3. #3
    Join Date
    Nov 2007
    Location
    London
    Posts
    1,577
    Tokens
    36

    Latest Awards:

    Default

    Give the iframe these two variables: name="main" id="main"
    Edit the width variable to whatever you want.
    Use this code to make it expand, works in firefox, IE and much more:

    Code:
    <script type="text/javascript">
                //<![CDATA[
                window.onload = function() {
                    var f = document.getElementById("main");
                    function resize() {
                        var h = "";
                        var w = "";
                        if (f.contentDocument) {
                            h = f.contentDocument.documentElement.offsetHeight + 20 + "px";
                            // can't find anything for Opera and Firefox that works for the width. OffetWidth doesn't work right either.(f.contentDocument.documentElement,"").getPropertyValue("width");
                        } else if (f.contentWindow) {
                            h = f.contentWindow.document.body.scrollHeight + 5 + "px";
                        } else {
                            return;
                        }
                        f.setAttribute("height",h);
                        f.parentNode.setAttribute("height",h);
                    }
                    if (window.addEventListener) {
                        f.onload = resize;
                    } else if (f.attachEvent) {
                        f.attachEvent("onload", resize);
                    } else {
                        return;
                    }
                    resize();
                }
                //]]>
            </script>
    Put it just before the </head> tag.

    This code is useless if your layout isn't coded properly/in expandables (as is any other code to make the iframe expand, it either won't work or your layout will break when it expands).
    Kind Regards,

    Guy
    __________________

    Since 2007. Unbelievable Uptime. Web hosting, resellers, master resellers, linux VPS, windows VPS, shoutcasts, at the lowest prices on the net.
    Tech-Hosts.co.uk.


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •