js实现的真正的iframe高度自适应(兼容IE,FF,Opera)


Posted in Javascript onMarch 07, 2010

找到了下面这个js

function SetCwinHeight(obj) 
{ 
var cwin=obj; 
if (document.getElementById) 
{ 
if (cwin && !window.opera) 
{ 
if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight) 
cwin.height = cwin.contentDocument.body.offsetHeight + 20; 
else if(cwin.Document && cwin.Document.body.scrollHeight) 
cwin.height = cwin.Document.body.scrollHeight + 10; 
} 
} 
}

然后……
进入了测试过程(调用很简单,先略过)
1.IE ---通过 但是高度还是有稍微的差距,很小,滚动条还在
2.FF --- 通过 与IE一样,有小差距
3.Opera --- 看那个JS的条件就知道,通不过的
但主流浏览器至少要通过这三项撒!!!
于是,还是Google
搜索 各浏览器在处理 document.scrollHeight 或者 offsetHeigth时的特殊现象
发现,Opera浏览器在处理iframe内容的时候,用的是contentWindow
而处理内容高度的时候,却与IE一致
从而,有了下面这段js
<html> 
<head> 
<script> 
function SetCwinHeight(obj) 
{ 
var cwin=obj; 
if (document.getElementById) 
{ 
if (cwin && !window.opera) 
{ 
if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight) 
cwin.height = cwin.contentDocument.body.offsetHeight + 20; //FF NS 
else if(cwin.Document && cwin.Document.body.scrollHeight) 
cwin.height = cwin.Document.body.scrollHeight + 10;//IE 
} 
else 
{ 
if(cwin.contentWindow.document && cwin.contentWindow.document.body.scrollHeight) 
cwin.height = cwin.contentWindow.document.body.scrollHeight;//Opera 
} 
} 
} 
</script> 
</head> 
<body> 
<iframe src="20103622440.html" onload="SetCwinHeight(this);" width="600px"> 
</body> 
</html>

这样一来,总算把这三个浏览器给适应了
做为程序员,还是要细心点
再测试一下
OK...3个浏览器均正常显示,也无iframe的纵向滚动条了
Javascript 相关文章推荐
10个新的最有前途的JavaScript框架
Mar 12 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
深入理解JavaScript编程中的同步与异步机制
Jun 24 Javascript
基于JavaScript的操作系统你听说过吗?
Jan 28 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
May 17 Javascript
js实现点击图片自动提交action的简单方法
Oct 16 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
Nov 28 Javascript
Angular 向组件传递模板的两种方法
Feb 23 Javascript
微信小程序如何使用云开发
May 17 Javascript
vue axios重复点击取消上一次请求封装的方法
Jun 19 Javascript
简单谈谈javascript高级特性
Sep 04 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 #Javascript
Jquery Validation插件防止重复提交表单的解决方法
Mar 05 #Javascript
javascript下判断一个元素是否存在的代码
Mar 05 #Javascript
ExtJs扩展之GroupPropertyGrid代码
Mar 05 #Javascript
js 获取服务器控件值的代码
Mar 05 #Javascript
jquery checkbox全选、取消全选实现代码
Mar 05 #Javascript
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
Mar 05 #Javascript
You might like
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
Javascript验证方法大全
2015/09/21 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Django实现分页功能
2018/07/02 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
浅谈python锁与死锁问题
2020/08/14 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
门诊挂号室室长岗位职责
2013/11/27 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
个人收入证明范本
2015/06/12 职场文书
法律服务所工作总结
2015/08/10 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
Java完整实现记事本代码
2022/06/16 Java/Android