iframe的自适应高度及iframe中含有页签的高度动态适应
2013-06-01 21:08
399 查看
本文是基于以下页面需求而撰写的:在A页面(A.html)中嵌套了一个iframe(B.html),在B中实现页签功能,并要求B在A中的显示是没有滚动条,并且B中页签的高度是动态变化的。
如下图,这是从项目中截的图,图2明显比图1高度要高:
A.html
B.html
在页面中获取隐藏的div的高度,第一步是让div显示,因为隐藏的div浏览器是不渲染的,直接取高度值为0,所以应设置display为block,取到高度后再设为none。
这种高度的自适应动态变化,会使页面更加的美观,不会出现大片的空白或者内容因高度不够而无法下是完全的问题,而且不会让用户有两个页面的感觉,目前测试适应各种版本的浏览器。
注:以上代码不能直接运行,只是样例。主要阐述用JS代码如何实现这种功能(JS可以直接使用)。
如下图,这是从项目中截的图,图2明显比图1高度要高:
A.html
<html> <head> </head> <body class="Pupwin"> <div> <table> </table> <iframe id="bIframe" name="bIframe" width="100%" frameborder="0" src="B.html" scrolling="no"> </iframe> </div> </body> </html>
B.html
<html> <head> <title>使用记录</title> </head> <script> function iframeResizeHeight(frame_name,body_name,offset) { parent.document.getElementById(frame_name).height=document.getElementById(body_name).offsetHeight+offset; } //初始化高度 function Resize(){ var frame_name="bIframe"; var body_name="main"; if(parent.document.getElementById(frame_name)){ return iframeResizeHeight(frame_name,body_name,0); } } </script> <body onload="Resize();"> <div id="main"> <table width="100%" height="25" border="0" cellpadding="0" cellspacing="0"> <tr> <td align="left"> <div> <ul id="whir_tab_ul"> <li onclick="resizeParent(1)"><span>tab1</span> </li> <li onclick="resizeParent(2)"><span>tab2</span> </li> <li onclick="resizeParent(3)"><span>tab3</span> </li> </ul> </div> </td> </tr> </table> <div id="tab1"> <table width="100%" border="0" cellpadding="0" cellspacing="1" class="listTable"> <tr><td>动态数据</td></tr> ... </table> </div> <div id="tab2" style="display:none"> <table width="100%" border="0" cellpadding="0" cellspacing="1" class="listTable"> <tr><td>动态数据</td></tr> ... </table> </div> <div id="tab3" style="display:none"> <table width="100%" border="0" cellpadding="0" cellspacing="1" class="listTable"> <tr><td>动态数据</td></tr> ... </table> </div> </div> </body> <script type="text/javascript"> var headHeight = document.getElementById("main").offsetHeight - document.getElementById("tab1").offsetHeight; function resizeParent(divIndex) { document.getElementById("tab" + divIndex).style.display = "block"; var tabHeight = document.getElementById("tab" + divIndex).offsetHeight; document.getElementById("tab" + divIndex).style.display = "none"; parent.document.getElementById("recordIframe").height = headHeight + tabHeight; } </script> </html>
在页面中获取隐藏的div的高度,第一步是让div显示,因为隐藏的div浏览器是不渲染的,直接取高度值为0,所以应设置display为block,取到高度后再设为none。
这种高度的自适应动态变化,会使页面更加的美观,不会出现大片的空白或者内容因高度不够而无法下是完全的问题,而且不会让用户有两个页面的感觉,目前测试适应各种版本的浏览器。
注:以上代码不能直接运行,只是样例。主要阐述用JS代码如何实现这种功能(JS可以直接使用)。
相关文章推荐
- iframe的自适应高度及iframe中含有页签的高度动态适应
- iframe自动适应高度及iframe中含有页签的高度动态适应方法
- 既然在 关于动态写入表格问题的扩展 中提到了iFrame,咱就不能不说说iFrame高度自适应问题
- iframe高度动态自适应
- 让动态的 iframe 内容高度自适应
- iframe高度动态自适应
- iframe高度动态自适应
- 真正的iframe 自适应高度,动态高度 js
- js动态改变iframe高度自适应
- 怎么让动态的 iframe 高度自适应里面内容
- dh: 实现iframe 自适应高度的问题(初始化和动态加载数据的时候)
- EasyUI中iframe嵌入页面,包含datagrid数据动态绑定,页面内容的高度自适应问题
- 动态设置iframe高度(iframe高度自适应)
- 实现iFrame自适应高度 适应内容高度
- iframe高度动态自适应
- 父级页面动态适应iframe高度变化
- 小tip:iframe高度动态自适应
- 20110107 学习记录:动态指定iframe的scr属性 & IE和Firefox的js兼容性整理 & iframe自适应高度
- 关于iframe自适应高度,解决一个iframe动态改变url,改变页面同时解决高度自适应问题