javascript 中iframe高度自适应(同域)实例详解

 更新时间:2017年05月16日 14:45:30   投稿:lqh  
这篇文章主要介绍了javascript 中iframe高度自适应(同域)实现代码的相关资料,需要的朋友可以参考下

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(),通过这样的分析,最后终于将问题解决了,经过这次,我一定要改掉急躁这个毛病,应该在遇到问题后,先分析问题和思考解决方法,如果自己解决不了再去查找相应的解决方法。这样就不会浪费时间和精力了。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 非常不错的弹出一个div的js代码

    非常不错的弹出一个div的js代码

    看代码主要是用css控制div的显示和div的显示位置和式样的代码
    2008-06-06
  • javaScript实现放大镜特效

    javaScript实现放大镜特效

    这篇文章主要为大家详细介绍了javaScript实现放大镜特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 获取JavaScript异步函数的返回值

    获取JavaScript异步函数的返回值

    本文给大家分享的是如何解决获取JavaScript异步函数返回值的经历及最后的解决方法,有需要的小伙伴可以参考下
    2016-12-12
  • 普通web整合quartz跑定时任务的示例

    普通web整合quartz跑定时任务的示例

    这篇文章主要介绍了普通web整合quartz跑定时任务,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • JavaScript中使用document.write向页面输出内容实例

    JavaScript中使用document.write向页面输出内容实例

    这篇文章主要介绍了JavaScript中使用document.write向页面输出内容实例,本文讲解了输出普通文字、带HTML标签内容的方法,需要的朋友可以参考下
    2014-10-10
  • 微信小程序自定义可滚动的弹出框

    微信小程序自定义可滚动的弹出框

    这篇文章主要为大家详细介绍了微信小程序自定义可滚动的弹出框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JavaScript删除有序数组中的重复项

    JavaScript删除有序数组中的重复项

    这篇文章主要介绍了JavaScript删除有序数组中的重复项,主要解决有序数组 nums ,要求原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长的问题,下面实现操作,需要的小伙伴可以参考一下
    2022-03-03
  • 前端大屏适配的三种解决方案总结

    前端大屏适配的三种解决方案总结

    在日常前端开发中,大屏项目是每个前端开发者必备技能,但是目前设备尺寸大小和分辨率都不相同,所以大屏适配成了一个头疼的问题,所以下面这篇文章主要给大家介绍了关于前端大屏适配的三种解决方案,需要的朋友可以参考下
    2024-03-03
  • getElementByID、createElement、appendChild几个DHTML元素

    getElementByID、createElement、appendChild几个DHTML元素

    WEB标准下可以通过getElementById(), getElementsByName(), and getElementsByTagName()访问
    2008-06-06
  • Echats图表大屏自适应的实现方法

    Echats图表大屏自适应的实现方法

    很多时候我们需要用图表来制作我们统计的数据直观的分析,所以我们可以用Echarts来制作图表,这篇文章主要给大家介绍了关于Echats图表大屏自适应的实现方法,需要的朋友可以参考下
    2021-10-10

最新评论