iframe 高度自适应/以及在ie8中空白问题

摘要:
首先,由于谷歌和Opera浏览器的安全问题,iframe的运行需要服务器环境!因此,以下文件在服务器环境中运行此iframe的高度设置的js写入子页!Document.frames[”controller father“]Document这是IE兼容的;其他人使用ifm.contentDocument;if(ifm!=null){ifm.style.height=subWeb.body.offsetHeight+50+'px';//ifm.style.height=subWeb.body.scrollHeight+50+'px`;可以使用这两种设置高度的方法;它们也可以设置为:ifm.height=…;这不需要添加“px”单位。}现在设置一种来查看效果!接下来,控制子页面中iframe的高度!

首先  由于谷歌与opera浏览器的安全问题对iframe的操作需要服务器环境!所以以下文件都是运行在服务器环境下的。

<body>

<h3>下面是iframe</h3>

<iframe name="controller-father" src="http://t.zoukankan.com/children-iframe.html" frameborder="1"></iframe>这个iframe的高度设置的js写在父页面里!
<iframe src="http://t.zoukankan.com/father-iframe.html" frameborder="1"></iframe>这个iframe的高度设置的js写在子页面里!
<script type="text/javascript">
       window.onload=function(){
              var ifm=document.getElementById('controller-father');

              var subWeb = document.frames ? document.frames["controller-father"].document : ifm.contentDocument;

      //document.frames ? document.frames["controller-father"].document这个是兼容IE的; 其他用 ifm.contentDocument;
              if(ifm != null && subWeb != null) {
                     ifm.style.height = subWeb.body.offsetHeight+50+'px';
                     // ifm.style.height = subWeb.body.scrollHeight+50+'px';这个两个设置高度的方法都能用;也可设置写为:ifm.height=...;这个就不用加 ‘px’单位了。

       }
}
</script>

</body>

现在先设置一个看看效果!

iframe 高度自适应/以及在ie8中空白问题第1张

ok!

下面进行在子页面里控制iframe的高度!

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="http://t.zoukankan.com/jquery-1.11.1.min.js"></script>
</head>
<body>
<p>我是子页面,在父页面里控制它的iframe的高度</p>
<p>我是子页面,在父页面里控制它的iframe的高度</p>
<p>我是子页面,在父页面里控制它的iframe的高度</p>
<p>我是子页面,在父页面里控制它的iframe的高度</p>
<p>我是子页面,在父页面里控制它的iframe的高度</p>
<p>我是子页面,在父页面里控制它的iframe的高度</p>
<p>我是子页面,在父页面里控制它的iframe的高度</p>
<p>我是子页面,在父页面里控制它的iframe的高度</p>
<script type="text/javascript">
var ifm=window.parent.document.getElementById('controller-children');//在子页面里获取父页面的iframe元素
ifm.style.height=window.document.body.offsetHeight+50+'px';
</script>
</body>
</html>

效果图

iframe 高度自适应/以及在ie8中空白问题第2张

 iframe加载正常但是一片空白,html的posotion属性不能是relative

免责声明:文章转载自《iframe 高度自适应/以及在ie8中空白问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS从零开始学习直播之3.美颜node.js---基础学习下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iframe,内部网页的缩放

对页面的缩放,是直接通过改变页面本身 如果修改不了,iframe 访问的页面本身,就没办法缩放。 这里的话,本来是想一个个改过去,但是发现,有些地方的宽高,是用 px 写死的。少还好,要是多了,改起来特别不方便。 当然,跟我自身的前端规范不好也有关系。 不过,自从发现了CSS 的缩放样式 ---->transform: scale() 来自W3sch...

防止 iframe 的链接重定向父级页面

项目中发现,多系统通过iframe嵌套时,如果iframe的请求是重定向会导致父级页面重定向,怎么破? 查找MDN(https://developer.mozilla.org/zh-CN/docs),找到sandbox 属性是用来限制安全沙箱的. 最终的设置 (不包含allow-top-navigation即可) 1、在 PC 端你可以这样设置 ifra...

Iframe 参数列表

<Iframe src="http://t.zoukankan.com/example.htm" heitht="100"></IFRAME>  example.htm 是被嵌入的页面,标签 <IFRAME> 还有一些可用的参数设置如下:  margin网页中内容在表格右侧的预留宽度;例如:marginwidth="20...

【react和iframe的数据通信】

业务场景,前端一个弹框中,使用iframe嵌入了一个子项目,子项目中的操作完成之后,需要关闭弹框; 关系:父组件react 页面 ,子组件 嵌入的页面 实现方案: 1.window全局定义一个事件xxx,代码块里面写关闭的方法;子项目中window.xxx 2.通过判断子项目中的某个dom元素值的变化判断子项目的交互操作状态,例如 input的value值...

js/jquery如何获取获取父窗口的父窗口的元素

取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);类似的,取其它窗口的方法大同小异 1 $(selector, window.top.document); 2 $(selector, wind...

三列自适应布局的实现方式(兼容IE6+)

1.绝对定位方式 1 <div class="nm-3-lr"> 2 <div class="aside-f"> 3 <p>侧边栏1固定宽度</p> 4 </div> 5 <div class="main"> 6 &l...