首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Iframe依据src页面高度实时调整高度

2013-03-29 
Iframe根据src页面高度实时调整高度function getDocHeight(doc){//在IE中doc.body.scrollHeight的可信度最

Iframe根据src页面高度实时调整高度
function getDocHeight(doc)
        {
            //在IE中doc.body.scrollHeight的可信度最高
            //在Firefox中,doc.height就可以了

            var docHei = 0;
            var scrollHei;//scrollHeight
            var offsetHei;//offsetHeight,包含了边框的高度

            if (doc.height)
            {
                //Firefox支持此属性,IE不支持
                docHei = doc.height;
            }
            else if (doc.body)
            {
                //在IE中,只有body.scrollHeight是与当前页面的高度一致的,
                //其他的跳转几次后就会变的混乱,不知道是依照什么取的值!
                //似乎跟包含它的窗口的大小变化有关
                if(doc.body.offsetHeight) docHei = offsetHei = doc.body.offsetHeight;
                if(doc.body.scrollHeight) docHei = scrollHei = doc.body.scrollHeight;
            }
            else if(doc.documentElement)
            {
                if(doc.documentElement.offsetHeight) docHei = offsetHei = doc.documentElement.offsetHeight;
                if(doc.documentElement.scrollHeight) docHei = scrollHei = doc.documentElement.scrollHeight;
            }
            /*
            docHei = Math.max(scrollHei,offsetHei);//取最大的值,某些情况下可能与实际页面高度不符!
            */
            return docHei;
        }
function doReSize()
        {
            var iframeWin = window.frames['iframe_body'];
            var iframeEl = window.document.getElementById? window.document.getElementById('iframe_body'): document.all? document.all['iframe_body']: null;
            if ( iframeEl && iframeWin )
            {
                var docHei = getDocHeight(iframeWin.document);
                if (docHei != iframeEl.style.height) iframeEl.style.height = docHei + 'px';
            }
            else if(iframeEl)
            {
                var docHei = getDocHeight(iframeEl.contentDocument);
                if (docHei != iframeEl.style.height) iframeEl.style.height = docHei + 'px';
            }
        }

        function runResizeTask()
        {
            doReSize();
            setTimeout("runResizeTask()",500);//每隔半秒执行一次
        }


<iframe allowtransparency='true' style="background-color: #DCE0E4; margin: 0px 0px; " id="iframe_body" height="100%" width="100%" src="aaa.action" framespacing="0" frameborder="no" scrolling="No" border="0"  onload="runResizeTask();" >

热点排行