iframe自适应高度(兼容目前所有主浏览器)
iFrame 自适应高度(兼容所有主浏览器) iFrame 自适应高度是前端开发中常见的问题,很多开发者在搜索引擎中搜索相关解决方案,但大多数文章只能解决静态高度的问题,而忽视了 JS 操作 DOM 之后的动态同步问题。同时,在浏览器兼容性方面也存在一定的漏洞。本文将深入探讨 iFrame 自适应高度的解决方案,并提供了相关的代码示例。 iFrame 自适应高度的定义是指隐藏 iFrame 的 border 和 scrollbar,让用户无法察觉到它是一个 iFrame。当 iFrame 需要切换页面或执行 DOM 动态操作时,需要程序去同步 iFrame 高度和被包含页的实际高度。 传统的解决方法有两种:一是每个被包含页在内容加载完毕之后,执行 JS 取得本页面的高度,然后去同步父页面的 iFrame 高度;二是在主页面 iFrame 的 onload 事件中执行 JS,去取得被包含页的高度内容,然后去同步高度。然而,这两种方法都存在一定的缺陷,它们只能处理静态的内容加载,而无法解决 JS 操作 DOM 引起的高度变化问题。 为了解决这个问题,可以使用 Interval 的方法,不断地获取被包含页的高度,然后进行同步。下面是一个简单的 Demo 代码: ```html <iframe id="frame_content" src="iframe_b.html" scrolling="no" frameborder="0"></iframe> <script type="text/javascript"> function reinitIframe(){ var iframe = document.getElementById("frame_content"); try{ iframe.height = iframe.contentWindow.document.documentElement.scrollHeight; }catch (ex){} } window.setInterval("reinitIframe()", 200); </script> ``` 在测试中,我们发现这种方法可以在多个浏览器中正确地工作,不会对 CPU 产生影响。 在浏览器兼容性方面,获取正确的高度是关键。主要有两个值需要比较:body.scrollHeight 和 documentElement.scrollHeight。为了避免不必要的错误,需要在页面中申明 doctype。 ```html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> ``` 在主页面追加以下测试代码,以输出这两个值: ```html <div><button onclick="checkHeight()">Check Height</button></div> <script type="text/javascript"> function checkHeight() { var iframe = document.getElementById("frame_content"); var bHeight = iframe.contentWindow.document.body.scrollHeight; var dHeight = iframe.contentWindow.document.documentElement.scrollHeight; alert("bHeight:" + bHeight + ", dHeight:" + dHeight); } </script> ``` 被加载页面可以切换一个绝对定位的层,来使页面高度动态变化。 iFrame 自适应高度是前端开发中需要注意的问题,需要深入探讨以解决 JS 操作 DOM 引起的高度变化问题,并且需要注意浏览器兼容性问题。























- 粉丝: 16
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 适应互联网+教育的高职计算机专业课程体系改革研究.docx
- 综合布线六类系统方案-模版.doc
- 基于AVR单片机的智能小车方案设计书.doc
- 公路工程档案管理信息化路径探究.docx
- 全国计算机等级测验二级MS+Office高级应用真题题库2+2016年3月.docx
- 面向对象程序设计A总结.ppt
- 春计算机网络毕业论文.doc
- 《计算机应用基础》课程创新改革实践.docx
- 中小型企业的项目管理分析研究.docx
- 探讨计算机网络数据库的安全管理技术.docx
- 广播电视网应用云计算技术的实践与探索.docx
- 基于网络的城乡信息技术Scratch互动学习.docx
- 探究互联网+背景下医院微信公众平台建设的方向.docx
- 计算机网络安全教程课后答案.doc
- 2005年10月电子商务安全导论全国自考试题.doc
- 基于树莓派的智能小车:自动避障、实时视频传输、目标检测及网球追踪系统


