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 相关文章推荐
ext监听事件方法[初级篇]
Apr 27 Javascript
理解Javascript_02_理解undefined和null
Oct 11 Javascript
javascript的动态加载、缓存、更新以及复用(一)
Jun 09 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
JavaScript入门教程之引用类型
May 04 Javascript
解决Vue编译时写在style中的路径问题
Sep 21 Javascript
详解React 在服务端渲染的实现
Nov 16 Javascript
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
浅谈VUE监听窗口变化事件的问题
Feb 24 Javascript
JS内部事件机制之单线程原理
Jul 02 Javascript
详解@angular/cli 改变默认启动端口两种方式
Nov 29 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
Apr 27 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
php array_filter除去数组中的空字符元素
2020/06/21 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
Yii框架form表单用法实例
2014/12/04 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
Python、Javascript中的闭包比较
2015/02/04 Python
Cpy和Python的效率对比
2015/03/20 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
土木工程专业自荐信
2013/10/04 职场文书
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
美德好少年主要事迹
2014/01/29 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
成绩单评语
2015/01/04 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android