Js获取Iframe页面高度,并将高度赋值给Iframe

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js获取Iframe页面高度,并将高度赋值给Iframe相关的知识,希望对你有一定的参考价值。

我当前是这样设计的。
一个div中嵌套Iframe,但是我不想给这个div一个固定高度,我想让Iframe中的高度去将其填充。
我想写一个Js获取Iframe的高度,然后将Iframe页面的高度,动态加载到
<iframe src="default.html" id="mainweb" name="mainweb" width="100%" height="???" frameborder="0"></iframe>
中去

求大牛帮忙~急用。。。

<iframe src="default.html" id="mainweb" name="mainweb" width="100%" height="100%" frameborder="0"  

onLoad="iFrameHeight()" ></iframe>。

<script type="text/javascript" language="javascript">。

function iFrameHeight() 。

var ifm= document.getElementById("mainweb");。

var subWeb = document.frames ? document.frames["mainweb"].document :。

ifm.contentDocument;。

扩展资料:

JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。

它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。

V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey解译过的指令暂存,以提高性能,称为实时编译)。

但由于V8的核心部分多数用Javascript撰写(而SpiderMonkey是用C++)。

参考资料来源:百度百科-javascript

参考技术A 你好,你这个问题就是iframe自适应高度的问题。以下代码可以解决:
<iframe src="default.html" id="mainweb" name="mainweb" width="100%" height="100%" frameborder="0"  onLoad="iFrameHeight()" ></iframe>
<script type="text/javascript" language="javascript">
function iFrameHeight() 
var ifm= document.getElementById("mainweb");
var subWeb = document.frames ? document.frames["mainweb"].document :
ifm.contentDocument;
if(ifm != null && subWeb != null) 
ifm.height = subWeb.body.scrollHeight;


</script>

为了测试,iframe的height你可以预先设置一个固定高度比如:height="200"(也可以使用100%),iframe加载完,会自动调整页面大小。

追问

但是我外面的那个div高度不想定义。不定义的话,Iframe的高度就是150px。


那我是不是可以将这个Iframe把 Iframe外层 div的高度撑起来呢?


而且现在这个方法也貌似木有效果呀。。。我截图看哈。

只要我外面的div不定义高度,那么Iframe的高度就是150

追答

外层的div高度你设为auto或者不设置就可以了。
上面代码你可以放到页面测试的。
你在
ifm.height = subWeb.body.scrollHeight;//后面加一行
alert(subWeb.body.scrollHeight)//测试返回iframe的高度、

看看返回的高度是多少

追问

亲,看私信吧。哎

本回答被提问者和网友采纳

给iframe赋ID后,用js是不是可以通过此ID获取引用页面body的高度?

可以下面是一个iframe自适应高度的例子,里面有获取iframe body高度的代码
<script language="JavaScript" type="text/javascript">
function SetWinHeight(obj)

var frmright=obj;
if (document.getElementById)

if (frmright && !window.opera)

if (frmright.contentDocument && frmright.contentDocument.body.offsetHeight)
frmright.height = frmright.contentDocument.body.offsetHeight;
frmright.width = frmright.contentDocument.body.offsetWidth;
else if(frmright.Document && frmright.Document.body.scrollHeight)
frmright.height = frmright.Document.body.scrollHeight;
frmright.width = frmright.Document.body.scrollWidth;




</script>
<IFRAME id=pr name=pr marginWidth=0 marginHeight=0 src="pro.asp" frameBorder=0 onload="Javascript:SetWinHeight(this)" width=540 scrolling=no height="100%"></IFRAME>
参考技术A 可以的,浏览器打开一个页面,这个页面的所有的内容就组成了一个DOM树,它的根节点是html,html有两个子节点head和body,你再body中写一个iframe,也就是body有一个子节点是iframe,反过来iframe的父节点就是body。
现在有iframe的ID,就可以取到iframe对象,取到对象就可以取到对象的父,也就是
var oBody = oIfame.parentNode();这个oBody就是body对象,body对象有了,body的高度不就是oBody.height了吗。本回答被提问者采纳

以上是关于Js获取Iframe页面高度,并将高度赋值给Iframe的主要内容,如果未能解决你的问题,请参考以下文章

将iframe的内容高度赋值给iframe本身高度,并隐藏iframe里面的垂直滚动条,使iframe和父页面看成是一个整体页面

给iframe赋ID后,用js是不是可以通过此ID获取引用页面body的高度?

jQuery自动获取的高度怎么赋值给元素?

包裹iframe的div与iframe存在高度差的问题解决方案

js获取iframe和父级之间元素,方法属,获取iframe的高度自适应iframe高度

js 怎么获取iframe 的高度?