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 相关文章推荐
Javascript中的for in循环和hasOwnProperty结合使用
Jun 05 Javascript
JS检测图片大小的实例
Aug 21 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
Feb 26 Javascript
javascript用函数实现对象的方法
May 14 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
ES6深入理解之“let”能替代”var“吗?
Jun 28 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 Javascript
基于axios封装fetch方法及调用实例
Feb 05 Javascript
vue-router 起步步骤详解
Mar 26 Javascript
vue中get请求如何传递数组参数的方法示例
Nov 08 Javascript
实例讲解JavaScript 计时事件
Jul 04 Javascript
vue3 自定义图片放大器效果的示例代码
Jul 23 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP多个版本的分析解释
2011/07/21 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
php strftime函数的详细用法
2018/06/21 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
js实现3D旋转效果
2020/08/18 Javascript
Python 如何访问外围作用域中的变量
2016/09/11 Python
Python实现句子翻译功能
2017/11/14 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
设置python3为默认python的方法
2018/10/31 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
大三自我鉴定范文
2013/10/05 职场文书
领导失职检讨书
2014/02/24 职场文书
局火灾防控工作方案
2014/05/25 职场文书
授权委托书格式
2014/07/31 职场文书
2014年药店工作总结
2014/11/20 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL