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 相关文章推荐
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
Feb 26 Javascript
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
两种JS实现屏蔽鼠标右键的方法
Aug 20 Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
React-Native中props具体使用详解
Sep 04 Javascript
node打造微信个人号机器人的方法示例
Apr 26 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
Feb 21 Javascript
深入解析koa之异步回调处理
Jun 17 Javascript
vue父子组件通信的高级用法示例
Aug 29 Javascript
vue父子组件间引用之$parent、$children
May 20 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
Laravel5中contracts详解
2015/03/02 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
2016/12/08 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
ES6入门教程之Array.from()方法
2019/03/23 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
Python如何为图片添加水印
2016/11/25 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
pygame实现成语填空游戏
2019/10/29 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
python add_argument()用法解析
2020/01/29 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
深入浅析Python代码规范性检测
2020/07/31 Python
求职意向书范文
2014/04/01 职场文书
二年级学生评语大全
2014/04/23 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
对照检查剖析材料
2014/09/30 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
先进班组材料范文
2014/12/25 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技