ifram的高度自适应方法

1.首先,在主页面上使用iframe引入子页面:

注意:这个子页面的id为Iframe

2.在子页面中再引入一个孙页面,并讲子页面的宽高信息传给孙页面:

具体代码内容为:

<script type="text/javascript">
            (function autoHeight(){

                var b_width = Math.max(document.body.scrollWidth,document.body.clientWidth);
                var b_height = Math.max(document.body.scrollHeight,document.body.clientHeight);

                var c_iframe = document.getElementById("c_iframe");

                c_iframe.src = c_iframe.src + "#" + b_width + "|" + b_height;  // 这里通过hash传递b.htm的宽高
            })();
        </script>
            

注意:这里是将子页面的宽高值存在了引入孙页面的iframe标签上的src属性中,存好后的孙页面iframe标签的src属性为:

如图可知,子页面的宽高应为580*79。

3.在孙页面中获取到存储的宽高信息,并赋给主页面中的iframe标签:

具体代码为:

<script type="text/javascript">
        var b_iframe = window.parent.parent.document.getElementById(‘Iframe‘);

        var hash_url = window.location.hash;
        if(hash_url.indexOf("#")>=0){
            var hash_width = hash_url.split("#")[1].split("|")[0]+"px";
            var hash_height = hash_url.split("#")[1].split("|")[1]+"px";

            b_iframe.style.width = hash_width;
            b_iframe.style.height = hash_height;
        }

    </script>

注意:这里的是孙页面,所以要获取到主页面的元素标签,要用window.parent.parent.document才能获取到。细心的同志可能注意到,整个过程中,用于传递宽高信息的iframe标签是隐藏的,这样可以替我们省掉不必要的麻烦。

原文地址:https://www.cnblogs.com/wuchongyou/p/8601065.html

时间: 2024-07-31 05:57:12

ifram的高度自适应方法的相关文章

页面高度自适应方法(PC、移动端都适用)

有个项目移动端的首页需要自适应. 宽度已经自适应了 , 高度也要自适应 ,先总结一下方法,PC端也适用. $(function(){ var h = window.innerHeight; $(".carousel-inner>.item>a>img, .carousel-inner>.item>img, .img-responsive, .thumbnail a>img, .thumbnail>img").css("height&q

两个DIV高度自适应方法(左右两个DIV高度一样)

html:<div id="container"> <div id="leftSide"> <p>aaaa</p> <p>aaaa</p> </div> <div id="rightSide"> </div> </div> 1.负外补丁和正内补丁{margin-bottom:-(num)px;padding-bottom:(nu

谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个ifame高度自适应网上一搜一大把,今天要讲的如何在不同的网站下进行相互的调用跟在同一个网站下是一个效果:例如我在自己的项目里面Iframe  了第一博客的页面  http://www.diyibk.com/   当第一博客的页面高度变化了怎么通知父页面呢? 这个时候在谷歌下肯定是拿不到 ifram

三种Div高度自适应的方法

让DIV高度自适应,这是在网页设计中常遇到的问题,为了给大家提供参考,这里提供3种div高度自适应的方法:一是JS法.二是背景图填充法.三是"补丁大法"(比较变态). 1.JS法 代码如下.原理:用JS判断左右DIV的高度,若不一致则设为一致.框架资源分享 Java代码   <div style="width:500px;background:#cccccc;height:0px;"> <div id="right" style

网页图片宽度和高度自适应的方法

在我们设计网页的时候,经常会遇到图片自适应问题,实际这些工作完全可以交给浏览器来完成就可以了,只可惜,无论是IE还是FIREFOX在图片自适应这个问题上都处理的不尽人意,网上实现网页图片宽度和高度的方法也很多,主要又两种: 第一种是使用CSS来完成:第二种是使用Javascript来完成,根据实际的应用效果来说,使用Javascript还是比较靠谱一点,因为CSS的expression的确有点烦,笔者是指使用效果上有点恼人,本文专门把这两种都总结一下,方便站长们参考使用. 一.使用CSS实现图片

iframe自适应高度解决方法 .

<div id="leftBar"> <iframe name="tag" src="_iframe.html" style="width:100%; min-height:510px; border:0; overflow:hidden" onload="this.height=tag.document.body.scrollHeight"></iframe> <

html5图片高度自适应解决方法

今天遇到一个HTML5图片高度自适应各个设备问题,网上找到一个解决方法,跟大家分享下. 由于<body>标签的图片不能够拉伸, 解决办法: 1.图片不够大,又background属性不能拉伸图片: 2.只能用个div,把其z-index值设为负,并使这个div大小为整个body大小,在div里用<img> 3.body的background属性去掉,要不然会被遮住. <!DOCTYPE HTML> <html> <head> <meta c

四种方法解决DIV高度自适应问题

本文和大家重点讨论一下解决DIV高度自适应的方法,这里主要从四个方面来向大家介绍,相信通过本文学习你对DIV高度自适应问题会有更加深刻的认识. DIV高度自适应 关于DIV高度的自适应,一直是个让人头疼的问题,整理了一下以前总结的方法,仅表示我也玩过. htmlcode: <div id="container"> <dividdivid="leftSide">这边的高度自适应右侧的高度</div> <dividdivid=&

Iframe 自适应高度的方法!

第一种方法:代码简单,兼容性还可以,大家可以先测试下. 1 function SetWinHeight(obj) 2 { 3 var win=obj; 4 if (document.getElementById) 5 { 6 if (win && !window.opera) 7 { 8 if (win.contentDocument && win.contentDocument.body.offsetHeight) 9 win.height = win.contentDo