页面部分
<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);
}
}
也许有更简单的解决方法,但这是我一步步遇到问题和解决的思路和代码,值得记录一下