iframe 研究

页面内嵌不同的网页内容时,导致iframe的高度无法与实现内容或浏览器高度相匹配。窗口大小变换时,不能iframe不能进行自动调整。这里,我们利用JAVASCRIPT让IFRAME框架的高度自适应。 首先,写出如下的JS方法。 /** * 内嵌页面的高度设置 */ function handleFrameLoad() { var hDoc = getBodyHeight(document); var tblmain = document.getElementById('tblMain'); var mFrame = window.mainFrame; var hFrameDoc = getFrameHeight(mFrame); var hTable = hDoc-80; //减去该页面除iframe外其他控件所占的高度. if(hFrameDoc > hTable) hTable = hFrameDoc; tblmain.style.height = hTable; mFrame.height = hTable; if(window.mainFrame.moduleRight != null){ //表示该内嵌页,包含内嵌的页面,页iframe的id固定为moduleRight。 initFrameHeight(mFrame,hTable); } } /** * 获取当前页面的高度 */ function getBodyHeight(doc){ if(doc.all) return doc.body.offsetHeight; else return doc.body.scrollHeight; } /** * 获取内嵌页中的高度. * 若另含子内嵌(moduleRight)页时,应考虑该页面的高度. */ function getFrameHeight(mFrame){ var h1 = mFrame.document.body.offsetHeight; var h2 = mFrame.document.body.scrollHeight; if(mFrame.moduleRight != null){ var h3 = mFrame.moduleRight.document.body.scrollHeight; if(h3 > h2) h2 = h3; } return h2; } /** * 设置子内嵌页面的高度. * 通过设置iframe所在table的高度来调整。 */ function initFrameHeight(frame,hFrame){ var tbl = frame.document.getElementById('tblMainFrame'); tbl.style.height = hFrame; } 主页面,在加载完毕(onload)、窗口大小调整(onresize),以及iframe的加载完毕时,需调用:handleFrameLoad,代码如下: </html 其他内嵌页如下(注:此处的iframe高度设为100%,其高度由父页面通过设置table的高度来进行调整):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值