javascript 中iframe高度自适应(同域)实例详解


Posted in Javascript onMay 16, 2017

javascript 中iframe高度自适应(同域)

       今天解决了iframe高度自适应的问题,不过这只是同域下的页面嵌入,以下是代码:

function SetCwinHeight(){

     var iframeid = document.getElementById("frame");  //frame是iframe的id

     if (document.getElementById) {
      if (iframeid && !window.opera) {
        if (iframeid.contentDocument && iframeid.contentDocument.body.offsetHeight) {

         iframeid.height = iframeid.contentDocument.body.offsetHeight;

        }else if (iframeid.Document && iframeid.Document.body.scrollHeight) {
         
         iframeid.height = iframeid.Document.body.scrollHeight;
         
        }
      }
     }

             iframe嵌入页面时需要等待它完全加载完后才可以调用SetCwinHeight(),所以当修改iframe里的src值时,也需要等待修改的页面完全嵌入后才可以调用SetCwinHeight(),这样才有效果,那么该怎么放置SetCwinHeight(),我的解决方法是在iframe标签里直接调用,即这样写 <iframe onload = "SetCwinHeight();"></iframe>,但是这样的的话会污染了html环境,可是在js中一般只用一次window.onload = function(){},如果使用多次,后面的会覆盖前面的,所以目前为止我能想到的解决方法就这一个,

      当嵌入页面修改时,iframe的高度也需要调整,当我在js文件直接这样window.onload = function(){SetCwinHeight();}调用SetCwinHeight()时,只有刷新整个页面才可以自适应高度,如果修改了iframe的src,iframe的高度还是前一个页面的高度,当前页面的高度无法自适应,一开始我以为是SetCwinHeight()写错了,但是当刷新整个页面时,当前页面又可以自适应了,在遇到这个问题之后,我的焦急毛病又出现了,总是没有分析问题就急急忙忙的去查找有关于问题的解决方法,然后查出来的又文不对题,这样反反复复,不仅浪费了时间,还使得自己的心情特别烦躁,这样的话工作就无法再进展下去。通过了这次的工作明白了自己的毛病,在休息了一会后,重新静下心来整理思路,然后分析出现的问题,程序如何运行,点击后程序运行的步骤又是什么,分析完后再看看是哪一步出错了,为什么会出错,像这次出现的错误,并不是程序写错了,而是程序运行的步骤出错了,整个页面刷新后就可以实现效果,但是修改src后又没有效果了,而window.onload = function(){}这一步是等待页面完全加载完后才执行,那么应该就是加载的问题了,所以需要等待页面加载完后才可以调用SetCwinHeight(),通过这样的分析,最后终于将问题解决了,经过这次,我一定要改掉急躁这个毛病,应该在遇到问题后,先分析问题和思考解决方法,如果自己解决不了再去查找相应的解决方法。这样就不会浪费时间和精力了。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js获取div高度的代码
Aug 09 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 Javascript
jQuery中prevUntil()方法用法实例
Jan 08 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
Jul 12 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
Aug 01 Javascript
Vue中如何实现轮播图的示例代码
Jul 27 Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
Vue父子模版传值及组件传值的三种方法
Nov 27 Javascript
vue实现双向绑定和依赖收集遇到的坑
Nov 29 Javascript
extjs图表绘制之条形图实现方法分析
Mar 06 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
May 30 #Javascript
Vue.js tab实现选项卡切换
May 16 #Javascript
Vue.js手风琴菜单组件开发实例
May 16 #Javascript
Bootstrap fileinput文件上传预览插件使用详解
May 16 #Javascript
js自定义瀑布流布局插件
May 16 #Javascript
简单实现js点击展开二级菜单功能
May 16 #Javascript
JavaScript禁止微信浏览器下拉回弹效果
May 16 #Javascript
You might like
使用无限生命期Session的方法
2006/10/09 PHP
php 缩略图实现函数代码
2011/06/23 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
node.js require() 源码解读
2015/12/13 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
python添加模块搜索路径方法
2017/09/11 Python
Flask框架信号用法实例分析
2018/07/24 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
Python如何在DataFrame增加数值
2020/02/14 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
加热夹克:RAVEAN
2018/10/19 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
包装类的功能、种类、常用方法
2012/01/27 面试题
会计专业的自荐信
2013/12/12 职场文书
校园歌手大赛策划书
2014/01/17 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
超市收银员岗位职责
2015/04/07 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书