• --:)欢迎访问锋网源码(:--
  • 首页
  • RSS订阅
  • 常用软件
  • 网页模板
  • 网站运作
  • 锋网学院
  • 繁體中文

  • 学院首页
  • 新闻资讯
  • 网站运营
  • 网站开发
  • 美工设计
  • 数据库类
  • 服务器类
  • 网络应用
  • 操作系统
  • 软件教学
编程开发   认证考试   网络安全   文章搜索: 高级搜索
会员登录/控制面版 您的位置: 学院首页 >> 网站开发 >> JavaScript >> 文章内容
 

精彩推荐

 
 

本类推荐文章

 
 

本类阅读排行

  • 如何打开IE/Firefox的JavaSc..
  • 学习Ajax教程,详细了解Get与..
  • ajax中文乱码解决方法
  • javascript操作select相关方..
  • JS获取各种浏览器窗口的大小
  • 在网页中控制wmplayer播放器
  • 用js写的一个跑马灯
  • 理解JavaScript函数
  • 网页常用特效整理:初级篇
  • 用js实现select对div的隐藏与..
  • 关于Ajax responseText 的一..
  • 网页图片特效小技巧
  • 网页常用特效整理:高级篇
  • JavaScript教程:onmouseover..
  • 利用JAVASCRIPT让IFRAME框架..
  • 网页常用特效整理:中级篇
  • Javascript 编程规范
  • 用javascript实现随机跳转页..
  • 对JavaScript的eval()中使用..
  • AS常用代码集锦
 
 

利用JAVASCRIPT让IFRAME框架的高度自适应

  • 日期:2008-09-05     人气:     出处:     作者:
  • 字体大小:
  • 小
  • 中
  • 大

页面内嵌不同的网页内容时,导致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>
  <body onload="handleFrameLoad();" onResize="handleFrameLoad();">
  <iframe src="" id="mainFrame" name="mainFrame" border=0 width=100% height=100% frameborder="0" marginwidth="0" hspace="0" scrolling="no" onload="handleFrameLoad();"/>
  </body>
</html

其他内嵌页如下(注:此处的iframe高度设为100%,其高度由父页面通过设置table<tblMainFrame>的高度来进行调整):


<html>
  <body class="body" style="overflow:hidden;margin:0px;padding:0px">
    <table width="100%" height="100%" id="tblMainFrame" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td id='content' height=100%>
          <iframe src="about:blank" width="100%" height="100%" name="moduleRight" id="moduleRight" frameborder="0" hspace="0"/>
        </td>
      </tr>
    </table>
  </body>
</html>

相关文章
相关软件

  • 网友评论:
  • 查看所有评论
  • 我要发表评论
 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 加入收藏 | 帮助中心 |

Copyright © 2006-2007 fwvv.net  程序支持:木翼  皖ICP备06004916号