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

2016-02-19 20:31 6 1 收藏

下面这个利用JAVASCRIPT让IFRAME框架的高度自适应教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - Web开发 】

  页面内嵌不同的网页内容时,导致iframe的高度无法与实现内容或浏览器高度相匹配。窗口大小变换时,不能iframe不能进行自动调整。这里,我们利用JAVASCRIPT让IFRAME框架的高度自适应。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  首先,写出如下的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;
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

/**
 * 设置子内嵌页面的高度.
 * 通过设置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%,其高度由父页面通过设置tabletblMainFrame的高度来进行调整):

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

来源:http://www.tulaoshi.com/n/20160219/1623917.html

延伸阅读
标签: Web开发
有时候,我们可能需要象新版的Yahoo邮箱一样,让一些数据显示块可以根据页面大小进行自适应。事实并不难,但是如果单纯用CSS控制的话,往往不能完全实现我们要的效果,这时候需要借助javascript,Javascript可以让我我们实现司空见怪的自适应页面,在iSunXoft的HR开源项目就应用到.     实现原理:     获取IE显...
标签: Web开发
自适应高度的问题,采用 Div + CSS 进行三列或二列布局时,事先不知道具体高度,只能根据内容的增减自适应高度,要使两列(或三列)的高度相同,用 Table 很容易实现,但采用 Div + CSS 就显得比较麻烦了。按照一般的做法,大都采用背景图填充或 JS 脚本的方法使高度相同,但这些都不是最好的办法,我认为… 下面介绍采用“隐藏容器溢...
自适应高度的问题,采用 Div + CSS 进行三列或二列布局时,事先不知道具体高度,只能根据内容的增减自适应高度,要使两列(或三列)的高度相同,用 Table 很容易实现,但采用 Div + CSS 就显得比较麻烦了。按照一般的做法,大都采用背景图填充或 JS 脚本的方法使高度相同,但这些都不是最好的办法,我认为… 下面介绍采用“隐藏容器溢出”和“...
标签: Web开发
在制作网页的过程中,自适应问题是经常遇到,而又最让人头疼的,看了好多种解决的方法,但是都不是万能的。今天遇到这个问题,实在让我挠头,借鉴了 Shark的方法,又给了我一个新思路。当时没仔细看LBS的样式表,今天才发现,.clear用的就是这个方法。接下来,我会做个关于自适应高度问题的汇总,以便今后遇到问题时候更快解决。 为了解决...
标签: Web开发
当你在页面上使用了iframe之后,一般来说会不希望iframe显示难看的滚动条,以使iframe里面的内容和主页面的内容浑然一体。这时候你会设置 scrolling="no" 属性。但是这样一来如果iframe里面的内容是变化的,高度会随之内容的变化而变化的时候,你的iframe就会显得太长导致底下一大片空白,或者正好相反,由于iframe的高度太小导致一部...

经验教程

755

收藏

45
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部