让iframe高度自适应
来源:互联网 发布:软件试用时间破解 编辑:程序博客网 时间:2024/05/01 14:28
iframe早已经替代了frameset成为了框架应用的主要标签,但是在目前的布局方式中iframe却也很难控制,目前常见于后台管理界面布局应用,如果你不会ajax那iframe在你的设计应用中,会经常用到。
在应用中,无非两种自适应状态,横向没有什么说的,window宽度100%;
纵向有两种,一种根据window高度100%(除非删除规范声明,应用table布局,但时下讲究的就是标准,可以用postion法进行定位,这里不说明了),另一种是根据内容高度进行自适应(我们说的是内部嵌套iframe的情况下)。
给iframe的高度很难进行设定,需要考虑window和iframe纵向滚动条的问题,怎么也不能让客户用两个滚动条,选择留下window滚动条,而iframe的高度等于它所调用页面的高度,这样iframe的滚动条就不会出现;
这样我们在iframe页面(通常是首页),加入以下代码
function setHeight(){
var iframe = document.getElementById("frame-right");
try{
var aHeight = iframe.contentWindow.document.body.scrollHeight;
var bHeight = iframe.contentWindow.document.documentElement.scrollHeight;
var height = Math.max(aHeight, bHeight);//取最高值;
iframe.height = height;
}catch (e){}
}
window.setInterval("setHeight()", 200);//执行的间隔时间;
这样iframe就会根据它所调用的网页高度来进行变化;
在应用中,还发现了这样的问题,所调用页面内容会动态加载其它内容,所调用网页高度出现变化,iframe没有刷新,于是它的滚动条又出现了;以上代码同时解决了该问题;
ie,ff下测试没问题。
注意:包含该iframe的div高度值不要设置,iframe的高度值不要设置。在应用中遇到了这样的问题,在点击左侧链接(左右结构,两个iframe)过快的情况下(也可能是其它原因引起),右侧载入的页面宽度溢出为,窗口的100%宽度,这种现象只出现在ie浏览器中,所以在应用中还是把宽度的自适应加入。
function setAuto(){
var iframe = document.getElementById("frame-right");
try{
var aHeight = iframe.contentWindow.document.body.scrollHeight;
var bHeight = iframe.contentWindow.document.documentElement.scrollWidth;
var aWidth= iframe.contentWindow.document.body.scrollHeight;
var bWidth = iframe.contentWindow.document.documentElement.scrollWidth;
var height = Math.max(aHeight, bHeight);//取最高值;
var width = Math.max(aWidth, bWidth);//取最高值;
iframe.height = height;
iframe.width= width
}catch (e){}
}
window.setInterval("setAuto()", 200);//执行的间隔时间;
- 让IFRAME自适应高度
- 让Iframe自适应高度
- 让Iframe自适应高度
- 让Iframe自适应高度
- 让Iframe自适应高度
- 让Iframe自适应高度
- 让Iframe自适应高度
- 让iframe高度自适应
- 让iframe高度自适应
- 让iframe简单有效自适应高度
- 如何让iframe框架自适应内容高度
- 如何让iframe的高度自适应父窗口的高度
- 让外层iframe的高度自适应加载页面高度
- 让iframe自适应高度(支持XHTML,支持FF)
- 利用js让iframe框架自适应网页高度
- 怎么让动态的 iframe 高度自适应里面内容
- Iframe高度自适应
- iframe 的自适应高度
- Java 多叉树的实现,完成树的初始化和遍历
- 避免使用swap的方法,及解决方法
- html5高价值的android屏幕适配精华教程(HTML5+CSS3)!
- eclipse 反编译插件安装
- Master 母版页图片路径问题 C#
- 让iframe高度自适应
- 在Linux下通过Pro*C语言访问Oracle(二)
- C++编程常见错误整理【转自周兆熊老师blog】
- Nexentastor online重复数据删除技术阐述
- vector,list,deque, map,set 特点分析
- 对Android开发者有益的40条优化建议
- 如何去写 Android init.rc (Android init language)
- [Play with T]_[C# 类操作] 通过反射调用类型T的有参构造函数
- Running a distribution (ARM EABI) Ubuntu at BeagleBoard