`
long272449358
  • 浏览: 65850 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

比较有效的iframe高度自适应代码

阅读更多
使用定时器保证iframe里面内容改变后iframe高度也动态改变。
还是用源生JS代码吧,本来用的是jquery,改了一下,占时看来支持ie8,chrome,firefox
/**
 * 设置内容iframe高度自适应
 * @param id iframe的id
 */
function iFrameHeight(id) {
  var ifm = document.getElementById(id);
  if (ifm != null) {
    var iframeHeight = Math.min(ifm.contentWindow.window.document.documentElement.scrollHeight + 20, 
    ifm.contentWindow.window.document.body.scrollHeight + 20); // 加20的高度保证部分浏览器得到的高度比实际内容小,可以考虑加更多
    ifm.height = iframeHeight;
  }
}
/**
 * 定时刷新重新获取iframe内容高度并重新设置iframe高度
 * @param id iframe的id
 */
function runResizeTask(id) {
  iFrameHeight(id);
  setTimeout(function(){runResizeTask(id);}, 500);  // 0.5秒性能和用户体验折中
}

前端代码如下:
<iframe src="/xxxxx" id="main_frame" name="main_frame" width="100%" frameborder="0" scrolling="no" onLoad="javascript:runResizeTask('main_frame')" />
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics