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的高度?
包裹iframe的div与iframe存在高度差的问题解决方案