使用定时器保证iframe里面内容改变后iframe高度也动态改变。
还是用源生JS代码吧,本来用的是jquery,改了一下,占时看来支持ie8,chrome,firefox
前端代码如下:
还是用源生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')" />