让iframe高度自适应

总结两种方法,第一种是在网上查资料然后总结出来的,兼容性比较好,支持IE8,以及其他的标准浏览器,IE8以下版本没有测试,IE8以上版本基本都支持,这种方法是通过js来调整iframe的宽高的,第二种方法很简单,是我看朋友是这样的写的,具体兼容性没有测试,应该不会差。不多少了,直接贴代码:

第一种:

<script type="text/javascript">

function findDimensions(){  //函数:获取尺寸

var winWidth = 0;

var winHeight = 0;

//获取窗口宽度

if (window.innerWidth){

winWidth = window.innerWidth;

}else if ((document.body) && (document.body.clientWidth)){

winWidth = document.body.clientWidth;

}

//获取窗口高度

if (window.innerHeight){

winHeight = window.innerHeight;

}else if ((document.body) && (document.body.clientHeight)){

winHeight = document.body.clientHeight;

}

//通过深入Document内部对body进行检测,获取窗口大小

if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth){

winHeight = document.documentElement.clientHeight;

winWidth = document.documentElement.clientWidth;

}

//调整div的高度以及iframe的宽高

var iframehei = winHeight - 180;

var iframeWid = winWidth - 310;

document.getElementById("Conframe").style.height=iframehei+"px";

document.getElementById("Conframe").style.width=iframeWid+"px";

}

$(document).ready(function(){

findDimensions();

menuOnClick("homePage/homePage.do");

});

//调用函数,获取数值

$(window).resize(function(){

findDimensions();

});

</script>

第二种:

 <iframe name="main" src="home.jsp" width=100% onload="this.height=this.contentWindow.document.body.scrollHeight" frameborder=No border=0 marginwidth=0 marginheight=0 scrolling=no></iframe>(第二种是不是很简单?直接这样就行了
onload="this.height=this.contentWindow.document.body.scrollHeight"

时间: 2024-11-02 21:50:45

让iframe高度自适应的相关文章

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

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

跨域iframe高度自适应(兼容IE/FF/OP/Chrome)

采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域.跨域两种情况. 由于客户端js使用浏览器的同源安全策略,跨域情况下,被嵌套页面如果想要获取和修改父页面的DOM属性会出现权限不足的情况,提示错误:Permission denied to access property 'document'.这是因为除了包含脚本的文档载入的主机外,同源策略禁止客户端脚本链接到其他任何主机或者访问其他任何主机的数据.这

iframe高度自适应(同域)

今天解决了iframe高度自适应的问题,不过这只是同域下的页面嵌入,以下是代码: function SetCwinHeight(){ var iframeid = document.getElementById("frame"); //frame是iframe的id if (document.getElementById) { if (iframeid && !window.opera) { if (iframeid.contentDocument &&

(转)iFrame高度自适应

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

CSS完美实现iframe高度自适应(支持跨域)

Iframe的强大功能偶就不多说了,它不但被开发人员经常运用,而且黑客们也常常使用它,总之用过的人知道它的强大之处,但是Iframe有个致命的"BUG"就是iframe的高度无法自动适应,这一点让很多人都头疼万分.百度或是谷歌一下,确实很多解决方法,但尝试一下,会发现问题很多:浏览器兼容性差,不能自适应,仅支持同域Iframe等诸多问题,尤其是跨域Iframe高度自适应问题.网上根本找不到一种可行的方案(唯一有一种提到加入代理页面的,经过测试发现无用).难道真的没有一种可行的解决方案了

完美实现跨域Iframe高度自适应【Iframe跨域高度自适应解决方案】

Iframe的强大功能偶就不多说了,它不但被开发人员经常运用,而且黑客们也常常使用它,总之用过的人知道它的强大之处,但是Iframe有个致命的“BUG”就是iframe的高度无法自动适应,这一点让很多人都头疼万分.百度或是谷歌一下,确实很多解决方法,但尝试一下,会发现问题很多:浏览器兼容性差,不能自适应,仅支持同域Iframe等诸多问题,尤其是跨域Iframe高度自适应问题.网上根本找不到一种可行的方案(唯一有一种提到加入代理页面的,经过测试发现无用).难道真的没有一种可行的解决方案了吗? No

iframe高度自适应内容

JS自适应高度,其实就是设置iframe的高度,使其等于内嵌网页的高度,从而看不出来滚动条和嵌套痕迹.对于用户体验和网站美观起着重要作用. 如果内容是固定的,那么我们可以通过CSS来给它直接定义一个高度,同样可以实现上面的需求.当内容是未知或者是变化的时候.这个时候又有几种情况了. iframe内容未知,高度可预测 这个时候,我们可以给它添加一个默认的CSS的min-height值,然后同时使用javascript改变高度.常用的兼容代码有: function setIframeHeight(i

跨子域的iframe高度自适应

一.跨子域的iframe高度自适应 比如 'a.jd.com/3.html' 嵌入了 'b.jd.com/4.html',这种跨子域的页面 3.html 1 2 3 4 5 6 7 8 9 10 11 12 13 <!DOCTYPE html> <html>   <head>     <meta charset='utf-8' />     <title>1.html</title>     <script type="

自动加载的iframe高度自适应

动态产生iframe,自动加载至body中,还有一个功能就是iframe的高度自适应,下面代码测试于IE和Firefox,Chrome: 自动加载的iframe高度自适应

兼容firefox的iframe高度自适应代码

网上关于iframe高度自适应的代码有很多,但比较杂乱,本文根据实用性整理了以下代码: JavaScript部分: 折叠JavaScript Code复制内容到剪贴板 <script type="text/javascript"> function SetCwinHeight(iframeObj){ if (document.getElementById){ if (iframeObj){ if (iframeObj.contentDocument && i