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 相关文章推荐
学习YUI.Ext 第二天
Mar 10 Javascript
js 解决“options为空或不是对象”
Dec 22 Javascript
jquery实现的鼠标下拉滚动置顶效果
Jul 24 Javascript
js/jquery判断浏览器的方法小结
Sep 02 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
Oct 17 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
Canvas实现放射线动画效果
Feb 15 Javascript
js图片轮播插件的封装
Jul 21 Javascript
vue数据传递--我有特殊的实现技巧
Mar 20 Javascript
微信小程序如何像vue一样在动态绑定类名
Apr 17 Javascript
js 实现在2d平面上画8的方法
Oct 10 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/12/20 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php密码生成类实例
2014/09/24 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
js随机颜色代码的多种实现方式
2013/04/23 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
Python上下文管理器和with块详解
2017/09/09 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
python颜色随机生成器的实例代码
2020/01/10 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
办公室保洁员岗位职责
2013/12/02 职场文书
英文导游欢迎词
2014/01/11 职场文书
元旦晚会策划方案
2014/02/18 职场文书
自主招生推荐信范文
2014/05/10 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
大学生入党自荐书
2015/03/05 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
《搭石》教学反思
2016/02/18 职场文书