iframe自适应高度完美版解决DOM元素高度变化问题

http://www.zhangxinxu.com/wordpress/2010/12/%E5%B0%8Ftip%EF%BC%9Aiframe%E9%AB%98%E5%BA%A6%E5%8A%A8%E6%80%81%E8%87%AA%E9%80%82%E5%BA%94/

       通常做后台的时候,都喜欢用框架,在用frameset的时候,把系统分为左右两块,或者上左右两块不会出现自动高的情况,如果使用了iframe,就要碰上iframe自动高的问题,这不,我现在就折腾上了,可把哥给累着了!

       网上搜索”iframe自动高”会有很多的解决方案,我试了很多,但都存在问题,大多只解决了iframe加载完后的静态内容实现的自动高,iframe加载完后,对DOM操作,或者表格挤压引起的高度变化却不起作用.为此郁闷了N久!

如果iframe里面内容不进行DOM操作,可以使用这种最简单的方式:
<iframe id="iframe" src="iframe.html" scrolling="no" frameborder="0" οnlοad="this.height=this.contentWindow.document.documentElement.scrollHeight"></iframe>

反之,在iframe页里进行DOM操作,或者表格展现(表格展现如果挤压会改变高度)可以使用下面的方法 
JavaScript 复制代码
  1. <iframe id="iframe" src="iframe_b.html" scrolling="no" frameborder="0"></iframe>
    <script type="text/javascript">       
  2. function reinitIframe() {           
  3.      var iframe = document.getElementById("iframe");           
  4.      try {               
  5.             var bHeight =iframe.contentWindow.document.body.scrollHeight;               
  6.             var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;              
  7.             var height = Math.max(bHeight, dHeight);            iframe.height = height;           
  8.         } catch (ex) { }       
  9. }       
  10. window.setInterval("reinitIframe()", 200);//定时去检查iframe的高度,这样保证时时都是自动高了
  11. <script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值