解决动态高度的iframe加载后双滚动条的问题

来源:互联网 发布:全国地区代码表 sql 编辑:程序博客网 时间:2024/05/22 02:00

页面部分

<div class='parentdiv'>    <iframe id="iframepart" src="" ></iframe></div>
  • iframe 高度不确定,再parent page 加载的时候可以通过获取页面内 iframe页面body 的方式获得动态高度

    js部分

    $(function(){var url ='要跳转的iframe页面';$('.parentdiv').css('height',$window.height());$('iframepart').attr('src',url);});
  • 上述方式若iframe 页面高度超出了屏幕高度,只会加载到屏幕高度,要想获得iframe 页面的实际高度 可以使用 scrollHeight
    因为 jquery 没有 scrollHeight 下述js写在 iframe 页面 获取实际高度

    $(function(){var height = (document.body.scrollHeight)+'px';$('parentdiv',window.parent.document).css('height',height);});
  • 若iframe数据是通过ajax 异步加载的,里面的div高度也是动态获取的,这里有个问题,当div内的内容没有加载到,上面的 var height 只能获取到没有撑开的高度,加载完ajax后还是无法得到实际的高度,这里就需要等所有document 树加载完再加载获取实际高度的方法

终极版,写在 iframe 页面

var ht = setInterval('getHeight',100);function getHeight(){    if(document.readyState == 'complete'){        var height = (document.body.scrollHeight)+'px';        $('parentdiv',window.parent.document).css('height',height);        window.clearInterval(gh);    }}

也许有更简单的解决方法,但这是我一步步遇到问题和解决的思路和代码,值得记录一下

原创粉丝点击