如何让iframe高度自适应

汽车 2019-11-05 12:43:47 2542

本文收集整理关于如何让iframe高度自适应的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:怎么让iframe的高度自适应
  • Q2:iframe 如何设置其自适应高度
  • Q3:如何让iframe高度自适应
  • Q4:div中的iframe怎样根据内容自适应高度
  • Q5:iframe在div中如何自适应高度
  • Q6:iframe高度自适应问题。
  • Q7:如何让IFrame自适应高度
  • Q1:怎么让iframe的高度自适应

    //父页面 html
    <iframe id="mainFrame" name="mainFrame" width="100%"
    frameborder="0" scrolling="no" onl oad="iframeLoad();" src="http://127.0.0.1/yijitao/XXX.html"></iframe>
    //父页面 js
    function iframeLoad(){
    var ifm= document.getElementById("mainFrame");
    //outerHeight 包含该div本身的高度, 以及padding,border,margin上下的总高度
    var height = $("#mainFrame").contents().find("#iframePage").outerHeight(true);
    ifm.height=height;
    }
    window.onresize=function(){
    iframeLoad();
    }
    //子页面 html
    <body>
    <div id="iframePage">
    //子页面内容
    </div>
    </body>

    Q2:iframe 如何设置其自适应高度

    在主页面iframe的onload事件中执行JS,去取得被包含页的高度内容,然后去同步高度。
    在代码维护角度考虑,方法二是优于方法一的,因为方法一,每个被包含页都要去引入一段相同的代码来做这个事情,创建了好多副本。
    如果只考虑FX和IE,并且,iframe里面内容也不进行DOM操作,那仍然可以用最简单最方便的传统处理方式:
    <iframe id="frame_content" src="http://127.0.0.1/yijitao/iframe_b.html" scrolling="no" frameborder="0" onl oad="this.height=this.contentWindow.document.documentElement.scrollHeight"></iframe>
    两个方法都只处理了静的东西,就是只在内容加载的时候执行,如果JS去操作DOM引起的高度变化,都不太方便。

    Q3:如何让iframe高度自适应

    实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象。<script type="text/javascript">
    //** iframe自动适应页面 **//
    //输入你希望根据页面高度自动调整高度的iframe的名称的列表
    //用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。
    //定义iframe的ID
    var iframeids=["test"]
    //如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏
    var iframehide="yes"
    function dyniframesize()
    {
    var dyniframe=new Array()
    for (i=0; i<iframeids.length; i++)
    {
    if (document.getElementById)
    {
    //自动调整iframe高度
    dyniframe[dyniframe.length] = document.getElementById(iframeids);
    if (dyniframe && !window.opera)
    {
    dyniframe.style.display="block"
    if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //如果用户的浏览器是NetScape
    dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
    else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //如果用户的浏览器是IE
    dyniframe.height = dyniframe.Document.body.scrollHeight;
    }
    }
    //根据设定的参数来处理不支持iframe的浏览器的显示问题
    if ((document.alldocument.getElementById) && iframehide=="no")
    {
    var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)
    tempobj.style.display="block"
    }
    }
    }
    if (window.addEventListener)
    window.addEventListener("load", dyniframesize, false)
    else if (window.attachEvent)
    window.attachEvent("onload", dyniframesize)
    else
    window.onload=dyniframesize
    </script>

    Q4:div中的iframe怎样根据内容自适应高度

    <iframe scrolling="no" name="aa" frameborder="0" src="http://127.0.0.1/yijitao/bb.html" onl oad="this.height=0;var fdh=(this.Document?this.Document.body.scrollHeight:this.contentDocument.body.offsetHeight);this.height=(fdh>700?fdh:700)"></iframe>
    iframe高度自适应,700为自己设定的iframe高度最低值,高度小于700的将以700显示,大于700将以div自身高度来显示。iframe高度最低值可以自己修改

    Q5:iframe在div中如何自适应高度

    //window.onresize表示窗口触发时间的时候执行

    //两个函数,用闭包包裹起来()()

    window.onload=function(){

    (window.onresize=function(){

    //获取可见宽度

    var width=document.documentElement.clientWidth-180;//180为左边的div的大小

    //获取可见高度

    var height=document.documentElement.clientHeight-80;//80为头部的div的大小可自己修改

    //如果有宽度就给值,

    if(width>=0){

    document.getElementById(main).style.width=width+px;

    }

    if(height>=0){

    document.getElementById(sidebar).style.height=height+px;

    document.getElementById(main).style.height=height+px;

    }

    })()};

    扩展资料:

    //设置iframe的高度

    function resizeFrameHeight() {

    $(.tab_iframe).css(height, document.documentElement.clientHeight - 118);

    $(md-tab-content).css(left, 0);

    }

    window.onresize = function () {

    resizeFrameHeight();

    initScrollShow();

    initScrollState();

    }

    Q6:iframe高度自适应问题。

    123456789101112131415js://iframe自适应里面内容的高度(需要在tomcat下运行)functionsetWinHeight(obj){varmainFrm=obj;if(document.getElementById){if(mainFrm&&!window.opera){if(mainFrm.contentDocument&&mainFrm.contentDocument.body.offsetHeight){mainFrm.height=mainFrm.contentDocument.body.offsetHeight+50;}elseif(mainFrm.Document&&mainFrm.Document.body.scrollHeight){mainFrm.height=mainFrm.Document.body.scrollHeight+50;}}}}12html:<iframeclass="iframe"src="http://127.0.0.1/yijitao/default.html"id="mainFrm"name="mainFrm"frameborder="no"border="0"onload="Javascript:setWinHeight(this)"></iframe>

    Q7:如何让IFrame自适应高度

    IFrame需要如何自适应高度呢?
    要是我们能够知道IFrame所加载页面的高度,然后设置IFrame的高度为所加载页面的高度,那么就可以达到自适应高度了。
    那要怎么知道IFrame所加载页面的高度?
    var clientHeight = $("#mainFrame").contents().find("body").height();
    使用jQuery去查找IFrame中的body的高度,那么clientHeight就是我们想要的了。
    但是我们要在什么时候去查找IFrame中的body呢?当然必须在IFrame加载完成的时候,要是IFrame还未加载完成,那我们如何取出它的body.
    $("#mainFrame").load(function() {
    var clientHeight = $("#mainFrame").contents().find("body").height();
    $(this).height(clientHeight);
    });
    这个世界是不是美好了很多?
    btw: 2009-12-16、今天修改了IFrame里的结构为
    <div id="main"></div> float: left;
    <div id="right-sidebar"></div> float: left;
    $("#mainFrame").contents().find("body").height(); 取出的值为0
    这是为什么呢?因为使用了float,则脱离了文档结构,你可以通过Firebug移过去,可以看到body没有选中任何区域。
    那我们该怎么办呢?
    只有main和right-sidebar两部分,取高的那部分不就可以了。
    var mainHeight = $("#mainFrame").contents().find("#main").height();
    var rightHeight = $("#mainFrame").contents().find("#right-sidebar").height();
    var clientHeight = Math.max(mainHeight, rightHeight);

    相关文章
    iframe可以用什么代替2019-08-08
    海拔高度软件哪个好用2018-08-27
    word表格宽度高度怎么设置2019-02-22
    高度白酒能兑低度酒吗2019-04-04
    足球场球门的高度2019-05-28
    上排水洗衣机排水管高度2019-06-27
    超高度近视眼怎么治疗2019-07-02
    橱柜和吊柜的高度多少2019-07-06
    怎样挑选适合自己的枕头高度2019-07-20
    白酒低度好还是高度好2019-07-21