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 相关文章推荐
jQuery 研究心得 取得属性的值
Nov 30 Javascript
用js获取电脑信息(是使用与IE浏览器)
Jan 15 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
javascript 应用小技巧方法汇总
Jul 05 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
JavaScript数据结构之二叉树的遍历算法示例
Apr 13 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
Aug 31 Javascript
Vue Prop属性功能与用法实例详解
Feb 23 Javascript
怎样在vue项目下添加ESLint的方法
May 16 Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 Javascript
js实现带箭头的进度流程
Mar 26 Javascript
详解Vue的异步更新实现原理
Dec 22 Vue.js
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
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
python 算法 排序实现快速排序
2012/06/05 Python
Python with用法实例
2015/04/14 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
印度在线杂货店:bigbasket
2018/08/23 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
医院科室评语
2015/01/04 职场文书
元宵节晚会主持词
2015/07/01 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python