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代码小结
Oct 14 Javascript
javascript标签在页面中的位置探讨
Apr 11 Javascript
jQuery中实现动画效果的基本操作介绍
Apr 16 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
Nov 13 Javascript
Javascript实现禁止输入中文或英文的例子
Dec 09 Javascript
JS实现的简单轮播图运动效果示例
Dec 22 Javascript
jQuery插件echarts去掉垂直网格线用法示例
Mar 03 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 Javascript
Vue-router 切换组件页面时进入进出动画方法
Sep 01 Javascript
微信小程序之swiper滑动面板用法示例
Dec 04 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
浅谈小程序globalData的那些事儿
Nov 01 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 zend解密软件绿色版测试可用
2008/04/14 PHP
PHP学习笔记之一
2011/01/17 PHP
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
javascript按顺序加载运行js方法
2017/12/01 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
Python简单的制作图片验证码实例
2017/05/31 Python
python http接口自动化脚本详解
2018/01/02 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
舞蹈毕业生的自我评价
2014/03/05 职场文书
安全生产宣传标语
2014/06/06 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
综合素质评价自我评价
2015/03/06 职场文书
立项申请报告范本
2015/05/15 职场文书
小学教师读书笔记
2015/07/01 职场文书
python实现自动化群控的步骤
2021/04/11 Python
Pyhton模块和包相关知识总结
2021/05/12 Python
js作用域及作用域链工作引擎
2022/07/07 Javascript