使用定时器保证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')" />
分享到:
相关推荐
iframe高度自适应代码及演示页面。 适合新手,用到iframe,并且需要高度自适应的人士。 老手自动绕行,又没什么技术含量。。。 解压之后,打开iframe-auto.html之后查看效果. 如果不能查看,检查是否允许执行js
用jquery实现iframe高度自适应实例代码完美兼容多数浏览器
jsp页面iframe高度自适应的js代码.docx
NULL 博文链接:https://tianshi0253.iteye.com/blog/316987
文件为iframe高度自适应的代码demo,能够兼容常用浏览器,项目开发当中我常拿来用
iframe自动适应高度,很难得的资源,很多下载的都是部分浏览器可以用,这个可以兼容360.ie6789等,遨游,火狐。搜狗等浏览器。。亲自测试。
网上查了好多用着都不行,自己搞定了:在包含iframe的页面中加入以下脚本,基本思想是在iframe加载内容后重新设置高度,下面代码尽在IE6中用过,没在其他浏览器中测试。
因为有一个项目要用到iframe自适应高度,网上搜索了以下结果无数,不过看来看去都是那几个,而且基本都测试了一遍,所说的兼容根本不是那么回事,要不IE不正常,要不其他浏览器显示不正常,最后无奈,综合网上的方法...
同域时Iframe高度自适应 下面的代码兼容IE/Firefox浏览器,控制id为“iframeid”的iframe的高度,通过JavaScript取得被嵌套页面最终高度,然 后在主页面进行设置来实现。 代码如下,可复制。另外,
今天解决了iframe高度自适应的问题,不过这只是同域下的页面嵌入,以下是代码: function SetCwinHeight(){ var iframeid = document.getElementById("frame"); //frame是iframe的id if (document....
最近在做项目中,遇到一个问题,就是iframe高度的自适应问题,以下是解决办法
iframe高度自适应,获取自身高度,之后将高度作为参数传递,在窗口加载后执行就可以了
介绍: 填写的嵌入地址一定要和本页面在同一个站点上,否则会提示“拒绝访问!”。对跨域引用有权限问题,请查阅其他资料。
对于iframe高度自适应的问题,网上已经被讨论n次了,一般通过在iframe加载完毕时访问iframe内页body的offsetHeight和offsetWidth然后更新iframe的高宽来实现。 今日遇到的自适应问题与以往有一些不同,这次的src是...
iframe自适应高度 WEB网站实用代码
代码如下: function SetIFrameHeight(down) { var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys....