iframe根据子页面的内容来设置高度

以下的方法必须起一个页面服务才能使用(通过域名或ip地址来访问)并且的保证父页面与子页面是在同一域名下,不然是会报错的

contentDocument 可以获得iframe子窗口的document对象,兼容ie8+

contentWindow    这是个只读属性,返回指定的iframe的窗口对象。

在iframe加载完毕之后通过contentDocument 或者 contentWindow 这个对象来获取iframe子页面的内容高度,从而来设置设置iframe的高度.再给iframe设置高度时子页面的默认样式margin要记得清除(不清楚是会有这个margin大小的误差的,有这个margin的话子页面的内容就无法全部显示出来了).

iframe的父页面

<iframe scrolling="no" id="main" name="main" frameborder="0" src="iframe子页面1.html"></iframe>

        <script type="text/javascript">
            //根据ID获取iframe对象
            var ifr = document.getElementById(‘main‘);

            ifr.onload = function() {
                //解决滚动条不收缩
                ifr.style.height = 0+‘px‘;

                var iDoc = ifr.contentDocument || ifr.contentWindow.document;

                var height = iDoc.documentElement.clientHeight || iDoc.body.clientHeight;

                console.log(iDoc.documentElement.clientHeight,iDoc.body.clientHeight);

                ifr.style.height = height + ‘px‘;
                console.log(height);
            }
</script> 

原文地址:https://www.cnblogs.com/zimengxiyu/p/12181287.html

时间: 2024-10-07 20:52:32

iframe根据子页面的内容来设置高度的相关文章

父页面获取子页面的内容

需求说明:两个JSP页面,父页面需要子页面的内容,但子页面是隐藏的,具体来说,子页面是一系列的模板,父页面要通过id来获取这些模板,不愿意通过<include>方式导入,因为如果模板过多,就导致整个父页面太大,加载缓慢,以下两个方案,不知有没有解决这个问题. 1,通过ajax方式 实现过程:通过ajax请求到子页面中,子页面获取参数id使用java和js变量的交互后,返回需要的模板信息 缺点:把js变量转换成java变量比较麻烦,需要使用form表单来提交,而且jsp中的java脚本是在服务器

使用iframe框架后的页面跳转时目标页面变为iframe的子页面的问题

<frameset rows="4,200,10,*,120" cols="*" framespacing="0" frameborder="no" border="1" > <frame src=""/> <frame src="<%=practiceInfoSrc %>" id="practiceInfo&quo

主页面获取iframe 的子页面方法。

父页面parent.html <html> <head> <script type="text/javascript"> function say(){ alert("parent.html"); } function callChild(){ myFrame.window.say(); myFrame.window.document.getElementById("button").value="调

跨域IFRAME自适应高度(子页面TAB切换不同的高度,主页面IFRAME嵌套子页面自适应高度)

1.pinganproxy.html <!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8"><title></title></head><body><script type="text/javascript">eval(function(p,a,c,k,e,r){e=fu

IE8下IFrame 和子页面的通信

业务中遇到这种场景,我们的业务嵌入别的系统中使用,系统采用Iframe调用我们的业务,在使用过程中主要遇到两个问题: 1.子页面高度发生变化时外部的Iframe高度自适应的问题. 2.子页面不同获取外部scrollTop的问题. 这两个问题其实都可以说是跨域通信的问题. 这两个问题我们采用了不同不同的方案来解决. 1.子页面高度发生变化时外部的Iframe高度自适应的问题. 我们采用在外部系统中增加一个代理页面,这样的话这个代理页面就和外部系统处于同一个域中了,相当于我们在外部系统中安插了一个内

Bootstrap 模态框 + iframe &gt; 打开子页面 &gt; 数据传输/关闭模态框

父页面bootstrap模态框: <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false" > <div class="modal-dialog modal-lg"> &l

html中iframe根据子页面内容动态修改高度

JavaScript var browserVersion = window.navigator.userAgent.toUpperCase(); var isOpera = browserVersion.indexOf("OPERA") > -1 ? true : false; var isFireFox = browserVersion.indexOf("FIREFOX") > -1 ? true : false; var isChrome = br

如何通过iframe调用其他页面的内容

我们在建站的时候经常会在页面出现同样的内容,比如公司简介之类的,这些东西很长,会减低网页的原创程度,相似度太高,对SE不是很友好.这时我们可以考虑把这部分内容写成一个单独的简单页面,然后通过iframe进行调用. 举个栗子,http://www.mjeyes.com/special/fm/页面中,中间蓝底的图文经常出现,那我们就直接调用 <iframe style="border:none;" src="http://www.mjeyes.com/fm.html&quo

iframe根据子页面自动调整大小

//iframe高度自适应 function IFrameReSize(iframename) { var pTar = document.getElementById(iframename); if (pTar) { //ff if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight) { pTar.height = pTar.contentDocument.body.offsetHeight; } //ie e