iframe自适应高度的简单方法及实例

iframe 自适应高度,目前最广泛的实现方式是以 JS 获取 iframe 所载入页面的 body 高度。(在本地 html 文件测试的时候 chrome 会有跨域错误,可以使用 IE 来测试)。其实质就是通过 offsetHeight 或者 scrollHeight 获取到 iframe 内部 body 的高度,再调整 iframe 高度即可。以下是初略形式:

Test.html 源码

 代码如下 复制代码

<!DOCTYPE HTML>
<html>
  <head>
    <title>iframe 自适应高度</title>
    <meta charset="UTF-8"/>
  </head>
  <body>
    <iframe id="auto" name="auto" src="./Test2.html" width="100%" onload="autoHeight()"></iframe>
    <script type="text/javascript" charset="utf-8">
      function autoHeight(){
        var ifr = document.getElementById('auto');
        ifr.height = ( ifr.contentDocument && ifr.contentDocument.body.offsetHeight ) ||
                     ( ifr.contentWindow.document.body.scrollHeight );
      }
    </script>
  </body>
</html>

Test2.html 源码

 代码如下 复制代码

<!DOCTYPE HTML>
<html>
  <head>
    <title>iframe 自适应高度</title>
    <meta charset="UTF-8"/>
    <style type="text/css">
      html,body{
        margin: 0;
        padding: 0;
      }
      #block{
        background-color: red;
        height: 500px;
        width: 800px;
      }
    </style>
  </head>
  <body>
    <div id="block"> </div>
  </body>
</html>

当然以上只是简单的实现,具体更严谨的计算高度做好使用一些兼容性不错库作为基础。

时间: 2024-11-22 17:42:02

iframe自适应高度的简单方法及实例的相关文章

JS实现iframe自适应高度的方法(兼容IE与FireFox)_javascript技巧

本文实例讲述了JS实现iframe自适应高度的方法.分享给大家供大家参考,具体如下: 之前一直被iframe自适应高度的问题困扰,很多JS代码在FF里面似乎就变成哑巴了.后来下面这段代码终于被我从万千号称兼容FF的代码堆中翻了出来.我已经用过了,真的好用.尤其是对于我这样的JS水平较低(真不好意思)的人来说,这段代码简单易懂,方便修改,只要把下面的代码复制粘贴到iframe所在页面的<body>标签里面,并且修改一下ID名就行了(注意,要修改的地方有两个,位置在代码中有说明). 向原创这段代码

iframe自适应高度实例与详解

传统做法大致有两个: 方法一,在每个被包含页在本身内容加载完毕之后,执行JS取得本页面的高度,然后去同步父页面的iframe高度.  代码如下 复制代码 function SetWinHeight(obj) { var win=obj; if (document.getElementById) { if (win && !window.opera) { if (win.contentDocument && win.contentDocument.body.offsetHei

iframe 自适应高度方法

不带边框的iframe因为能和网页无缝的结合从而不刷新页面的情况下更新页面的部分数据成为可能,可是 iframe的大小却不像层那样可以"伸缩自如",所以带来了使用上的麻烦,给iframe设置高度的时候多了也不好,少了更是不行,现在,让我来告诉大 家一种iframe动态调整高度的方法,主要是以下JS函数: 第一种方法:代码简单,兼容性还可以,大家可以先测试下. 复制代码代码如下: function SetWinHeight(obj)  {  var win=obj;  if (docum

iframe自适应高度方法

 谓iframe自适应高度,就是,基于界面美观和交互的考虑,隐藏了iframe的border和scrollbar,让人看不出它是个iframe.如果iframe始终调用同一个固定高度的页面,我们直接写死iframe高度就可以了.而如果iframe要切换页面,或者被包含页面要做DOM动态操作,这时候,就需要程序去同步iframe高度和被包含页的实际高度了. 如果iframe的高度没有确定,那将是初始的高度. iframe是网页中的一部分,其大小还要受到网页的限制,设置最高可以使用height="1

jquery ajax应用中iframe自适应高度问题解决方法_javascript技巧

iframe自适应高度本身是很简单的方法,就是在页面加载完成后,重新计算一下高度即可. 代码如下: 复制代码 代码如下: //公共方法:设置iframe的高度以保证全部显示数据//function SetPageHeight() {//    var iframe = getUrlParam('ifname');//    var myiframe = window.parent.document.getElementById(iframe);//     iframeLoaded(myifra

经典的iframe自适应高度方法总结

iframe高度自适应 iframe高度自适应是一个很老的话题.html5虽然已经将frame 框架给废弃,但是iframe这个标签还是存在的.假如有同学不了解frame和iframe的区别,可以看我之前的文章:html框架之iframe和frame及frameset的相关属性介绍. 虽然现在iframe在项目中已经很少出现了,但是有些项目迫不得已,还是会用到iframe.近期遇到一个案例,就用到了iframe. 基本案例如下: 由于手机浏览器预览PDF不是很好,因此,将手机上预览PDF改成预览

Javascript使iframe自适应高度实例

工作中我们遇到了iframe嵌入页面高度自适应的问题.因为我们不知道所加载的iframe内容页面会有多高,又不想在页面上出现难看的滚动条,这个时候我们可以使用Javascript来动态让iframe自适应高度. 准备工作 我们准备一个主页面a.html,以及两个用于嵌入iframe的页面分别为iframeH.html和iframeH1.html,内容可以自己随便加,实际应用中可能是后台生成的内容. 为了演示,我们在主页面a.html中加入如下代码:   <div class="opt_bt

关于IFRAME 自适应高度的研究

自适应 代码如下: <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="GENERATOR" content="Microsoft FrontPage 4.0"><meta name="ProgId" content=&qu

使用jQuery不判断浏览器高度解决iframe自适应高度问题_jquery

这里介绍两个超级简单的方法,不用写什么判断浏览器高度.宽度啥的. 下面的两种方法自选其一就行了.一个是放在和iframe同页面的,一个是放在test.html页面的. 注意别放错了地方. iframe的代码中,注意要写ID,没有ID查找不到 复制代码 代码如下: <iframe src="test.html" id="main" width="700" height="300" frameborder="0&q