好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

iframe嵌套frameset,实现整个iframe框架出现滚动条,怎么样随页面内容的高度全部展示

我做的网站,是用frameset框架布局,分上中下,上面和下面框架部分的内容是固定的,中间框架内容是不同的,我想让整个框架共用一个滚动条,就用iframe嵌套frameset框架,我在iframe中设置了高度,页面内容不一样,高度也不一样了,有什么办法能让页面的内容全部展示出来?纠结两天了,很急,在线等!请各位大侠帮帮忙!


回复讨论(解决方案)

动态计算中间框架的高度,在《body onload里面加上上面、下面的高度,赋值给外面的iframe的style.height

怎么动态计算呀?请说明白一点吗?

h = document.documentElement?document.documentElement.offsetHeight:document.body.offsetHeight

这个是能子框架的页面的高度吗?

2个iframe能共用一个滚动条,好奇怪啊







这个是我框架布局的页面,
-------------------------------



function iFrameHeight(iframeID){
var ifm= document.getElementById(iframeID);
var subIfm = ifm.contentWindow.document.documentElement.scrollHeight;
if(ifm != null && subIfm != null){
ifm.height = subIfm;
}
}






src="index.html" scrolling="no" name="frm" id="frm" width="100%" onload="iFrameHeight('frm')" />
这个是我引入框架布局的页面

这个是中间框架的,你再加上上、下的固定高度,然后+"px"

不是两个iframe啦

我加了上下框架的高度,但是中间框架的页面内容不一样,高度也就不一样了,我获取不到中间页面的高度?

我加了上下框架的高度,但是中间框架的页面内容不一样,高度也就不一样了,我获取不到中间页面的高度?

不是告诉你动态计算的吗???

本帖最后由 net_lover 于 2012-09-14 10:54:53 编辑

给你完整的例子
a.htm
           


frameset.htm
      


middle.htm
 function setHeight(){ h = Math.max(document.documentElement.offsetHeight,document.body.offsetHeight) window.parent.parent.document.getElementById("foo").style.height = 100+h+100 + 50+"px"; //为了保证效果,多加50}  html,body{margin:0;padding:0}  foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo  



注意,测试要使用http方式,不要直接说文件方式测试

给你完整的例子
a.htm
HTML code













frameset.htm
HTML code

谢谢拉

给你完整的例子
a.htm
HTML code













frameset.htm
HTML code

谢谢拉

本帖最后由 net_lover 于 2012-09-14 10:54:53 编辑
给你完整的例子
a.htm
XML/HTML code?1234567891011 id=foo src="frameset.……

用了你的代码,但是ie里最外侧的滚动条无法用鼠标滚轮控制,在火狐和chrome里能控制,不知道什么原因?

本帖最后由 net_lover 于 2012-09-14 10:54:53 编辑
给你完整的例子
a.htm
XML/HTML code?1234567891011 id=foo src="frameset.……

还有获取第一个页面的高度后跳转其他页面时仍然保持第一个页面的高度,我在跳转页面中加了获取高度代码的

查看更多关于iframe嵌套frameset,实现整个iframe框架出现滚动条,怎么样随页面内容的高度全部展示的详细内容...

  阅读:41次