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 拾色器插件发布-jquery.icolor.js
Oct 20 Javascript
js转义字符介绍
Nov 05 Javascript
jQuery页面加载初始化常用的三种方法
Jun 04 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
Jun 07 Javascript
jQuery表单验证之密码确认
May 22 jQuery
JS实现闭包中的沙箱模式示例
Sep 07 Javascript
js截取字符串功能的实现方法
Sep 27 Javascript
vue 实现全选全不选的示例代码
Mar 29 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 Javascript
Vue的生命周期操作示例
Sep 17 Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 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在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
Symfony核心类概述
2016/03/17 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
PHP实现的策略模式示例
2019/03/20 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
python导入坐标点的具体操作
2019/05/10 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
UNIX特点都有哪些
2016/04/05 面试题
辅导员评语
2014/05/04 职场文书
化工专业求职信
2014/07/01 职场文书
淘宝好评语句大全
2014/12/31 职场文书
护林员个人总结
2015/03/04 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
解决MySQL报“too many connections“错误
2022/04/19 MySQL