zoukankan      html  css  js  c++  java
  • Iframe自适应高度,Iframe高度问题解决

    Iframe自适应高度,Iframe高度问题解决

    ================================

    ©Copyright 蕃薯耀 2021-03-10

    https://www.cnblogs.com/fanshuyao/

    一、Iframe自适应高度方法

    /**
     * 父级页面获取子级页面的高度 给元素设置高度
     * 在onload事件之后才生效,即第一次加载才生效,后面高度变化不再生效
     * @param id
     * @returns
     */
    function setIframeHeightAfterLoad(id){
        try{
            var iframe = document.getElementById(id);
            if(iframe.attachEvent){
                iframe.attachEvent("onload", function(){
                    //console.log("iframe.attachEvent");
                    iframe.height =  iframe.contentWindow.document.documentElement.scrollHeight;
                });
                return;
                
            }else{
                iframe.onload = function(){
                    iframe.height = iframe.contentDocument.body.scrollHeight;
                    //console.log("iframe.onload");
                };
                return;                 
            }
        }catch(e){
            throw new Error('setIframeHeightAfterLoad Error');
        }
    };
    
    
    /**
     * 父级页面获取子级页面的高度 给元素设置高度
     * 配合定时使用:window.setInterval("thisIframeHeightAuto()", 200);
     * @param id
     * @returns
     */
    function setIframeHeight(id){
        try{
            var iframe = document.getElementById(id);
            if(iframe.attachEvent){
                iframe.height =  iframe.contentWindow.document.documentElement.scrollHeight;
                return;
                
            }else{
                iframe.height = iframe.contentDocument.body.scrollHeight;
                return;                 
            }
        }catch(e){
            throw new Error('setIframeHeight Error');
        }
    };
    
    
    /**
     * 子级页面给父级页面元素设置高度
     * @param id
     * @returns
     */
    function setParentIframeHeight(id){
        try{
            var parentIframe = parent.document.getElementById(id);
             if(window.attachEvent){
                window.attachEvent("onload", function(){
                    parentIframe.height = document.documentElement.scrollHeight;
                });
                return;
            }else{
                window.onload = function(){
                    parentIframe.height = document.body.scrollHeight;
                };
                return;                 
            }
        }catch(e){
            throw new Error('setParentIframeHeight Error');
        }
    };

    二、详细使用

    <iframe id="socialHousingIframe" border="0" frameborder="0" scrolling="no" 
        width="100%" height="100%" style="padding: 0; margin: 0;" 
        src="../../static/analysis/socialHousing.html">
    </
    iframe>
    function thisIframeHeightAuto(){
        setIframeHeight("socialHousingIframe");
    };
    $(function(){
    
    //定时处理 window.setInterval(
    "thisIframeHeightAuto()", 200);

      //首次加载使用setIframeHeightAfterLoad,可以省略,由定时任务处理 setIframeHeightAfterLoad(
    "socialHousingIframe"); });

    (如果文章对您有所帮助,欢迎捐赠,^_^)

    ================================

    ©Copyright 蕃薯耀 2021-03-10

    https://www.cnblogs.com/fanshuyao/

    今天越懒,明天要做的事越多。
  • 相关阅读:
    【调试】关于F9
    【vue】vue变量定义的位置
    【js】MVVM模型
    RE最全面的正则表达式----数字篇
    Spider & CrawlSpider
    论小脚本的重要性
    论小脚本的简单性3
    论小脚本的简单性2
    论小脚本的简单性
    git的常用命令
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/14513535.html
Copyright © 2011-2022 走看看