iframe自适应高度完美版解决DOM元素高度变化问题,使用以下方法在iframe内容长度增加时有效,但在减短时无效

iframe自适应高度完美版解决DOM元素高度变化问题,使用以下方法在iframe内容长度增加时有效,但在减短时无效
因系统使用代码自动计算iframe的内高度,并实时把高度值赋给iframe节点,此操作有问题,造成循环,iframe节点height属性值被设定后,读取iframe内高度便会读到这个值,造成无法按实际高度更新滚动条。​

解决要点:iframe内部关闭弹窗操作时把父页面iframe节点height属性去除。

    <iframe id="iframe" src="iframe_b.html" scrolling="no" frameborder="0"></iframe>
    <script type="text/javascript">       
        function reinitIframe() {           
             var iframe = document.getElementById("iframe");           
             try {               
                var bHeight =iframe.contentWindow.document.body.scrollHeight;               
                var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;              
                var height = Math.max(bHeight, dHeight);            iframe.height = height;           
             } catch (ex) { }       
        }       
    window.setInterval("reinitIframe()", 200);//定时去检查iframe的高度,这样保证时时都是自动高了
    <script>

在ifrme内改变高度时执行:

    window.parent.document.getElementById("iframe").removeAttribute("heigth");

标签: js, iframe, html