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 相关文章推荐
指定js可访问其它域名的cookie的方法
Sep 18 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
JavaScript变量的作用域全解析
Aug 14 Javascript
javascript+css3 实现动态按钮菜单特效
Feb 06 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
May 12 Javascript
js流动式效果显示当前系统时间
May 16 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
Jun 13 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
Dec 28 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
零基础之Node.js搭建API服务器的详解
Mar 08 Javascript
微信小程序定义和调用全局变量globalData的实现
Nov 01 Javascript
JS实现简单九宫格抽奖
Jun 28 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中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
Laravel 队列使用的实现
2019/01/08 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
详解js的六大数据类型
2016/12/27 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
python操作CouchDB的方法
2014/10/08 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
python实现复制文件到指定目录
2019/10/16 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
三年级语文教学反思
2014/02/01 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
2015元旦节寄语
2014/12/08 职场文书
先进学校事迹材料
2014/12/30 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
新教师教学工作总结
2015/08/12 职场文书