如何获取Frameset内frame文档高度

来源:百度知道 编辑:UC知道 时间:2024/07/02 13:52:28
default.html现有一框架如下
<frameset cols="120,*">
<frame src="left.htm" noscroll="yes" frameborder="0" border=0>
<frameset rows="50,*,*" id="rightFrame" scrolling="yes">
<frame src="top.htm" id="topFrame" name="topFrame" frameborder="0" scrolling="no" >
<frame src="main.aspx" id="mainFrame" name="mainFrame" frameborder="0" scrolling="no">
<frame src="bottom.htm" id="bottomFrame" name="mainFrame" frameborder="0" scrolling="no" >
</frameset>

main.aspx内容每次都不一样,即高度会随内容变化。
现在我需要在此页页通过javascript获取main.aspx页面内容的高度,然后设置rightFrame.rows
请问如何获取main.aspx的高度
上面的name是写错了,不过没影响。
我试过用scrollHeight获取main.aspx的高度,但返回的始终是19,另外是不是要等待main.aspx的内容加载完成后,才知道内容的实际高度呢?main.asp

你的意思是想根据mainFrame里面的实际内容动态的更改它的高是吗?
那你可以在main.aspx初始化写上这样一句
function screeChange(){
window.parent.document.getElementById('rightFrame').rows="50,"+document.body.scrollHeight+",100";

}
</script>
body里面加上:onload="screeChange()"
注意一定要在body里面或者它的后面初始化,不然获取不到内容高度。

其中document.body.scrollHeight获取main.aspx页面的实际文本高度,然后赋值给它的父窗体中的rightFrame的row值。。。
另外:<frame src="bottom.htm" id="bottomFrame" name="mainFrame" frameborder="0" scrolling="no" >
这个name值是不是写错鸟。。。。
另外在asp.net编程中。。。建议舍弃frameset 使用irame哈。。

在外层获取高度有点麻烦,建议你写到内层去,在外层获取高度麻烦是因为你不知道内层的网页什么时候加载完并渲染完成,取到的高度基本上都是0,不过也不是完全没有办法,监视内层document的readyState属性,加载完成后才能取到高度

不要用frameset,用<iframe></iframe>,即美观,又好控制.

<iframe src="(文件路径)" width="(此框架的显示宽度,可以为像素值和百分比值)" heigth="(与width相同)"></ifrmae>

rows