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 相关文章推荐
网页上的Javascript编辑器和代码格式化
Apr 25 Javascript
jquery miniui 教程 表格控件 合并单元格应用
Nov 25 Javascript
JavaScript获取当前网页标题(title)的方法
Apr 03 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
Jquery动态添加输入框的方法
May 29 Javascript
通用无限极下拉菜单的实现代码
May 31 Javascript
JS Ajax请求如何防止重复提交
Jun 13 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
Vue2路由动画效果的实现代码
Jul 10 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
Sep 28 Javascript
mint-ui 时间插件使用及获取选择值的方法
Feb 09 Javascript
Vue的props父传子的示例代码
May 20 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防注
2007/01/15 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
php中__toString()方法用法示例
2016/12/07 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
Python内置数据类型详解
2014/08/18 Python
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
Python class的继承方法代码实例
2020/02/14 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
历史专业个人求职信范文
2013/12/07 职场文书
如何填写个人简历自我评价
2013/12/10 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
新闻稿格式范文
2015/07/18 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers