iframe高度动态自适应,一直是个头疼的问题,今天我们从事件监听这个角度,来实现iframe高度实时更新。

方案一:监听iframe体的点击事件

<iframe src="cascade.jsp" onload="addEvt(this)"></iframe>
function addEvt(ifm){
var addHeight = function(ifmObj){
if(ifmObj){ }else{ return; }
var win = ifmObj.contentWindow,
doc = win.document,
       body = doc.body,
html = doc.documentElement,
height = html.offsetHeight;

       $.each(body.childNodes,function(index,node){/* 迭代所有可见元素高度累加 */
          var domHeight = node.offsetHeight || 0;
          if(index == 0) height = domHeight;
          else height += domHeight;
       });

            $(ifmObj).height(height);
}
var doc=ifm.contentWindow.document;
doc.onclick=function(){
addHeight(ifm);
}
addHeight(ifm);
$(ifm).css({width:'100%',border:0}).attr("scrolling","no");/*设置无边框和滚动条*/
setTimeout(function(){$(doc).trigger("click");},1000);
}

方案二:监听iframe的滚动事件

<iframe class="autoHeight" src="cascade.jsp"></iframe>
$(function(){
bindIfmScroll();
});
function bindIfmScroll(){
var addHeight = function(ifm){
if(ifm){ }else{ return; }
var win = ifm.contentWindow,
doc = win.document,
html = doc.documentElement,
body = doc.body;
var height = Math.max( //body.scrollHeight,
//body.offsetHeight,html.clientHeight,
//html.scrollHeight,
html.offsetHeight
);
$(ifm).height(height);
}
var ifms = $("iframe.autoHeight"); /*自动检索class为‘autoHeight’的iframe*/
     ifms.css({width:'100%',border:0}).attr("scrolling","no");/*设置无边框和滚动条*/
ifms.each(function(){
var ifmObj = this;
$(ifmObj.contentWindow).scroll(function() {
addHeight(ifmObj);
});
});
}

试验之后,方案一更好些。以上仅供参考,列位如果有更好方案希望能分享出来o(^▽^)o

iframe高度自适应实现方案的更多相关文章

  1. 完美实现跨域Iframe高度自适应【Iframe跨域高度自适应解决方案】

    Iframe的强大功能偶就不多说了,它不但被开发人员经常运用,而且黑客们也常常使用它,总之用过的人知道它的强大之处,但是Iframe有个致命的“BUG”就是iframe的高度无法自动适应,这一点让很多 ...

  2. CSS完美实现iframe高度自适应(支持跨域)

    Iframe的强大功能偶就不多说了,它不但被开发人员经常运用,而且黑客们也常常使用它,总之用过的人知道它的强大之处,但是Iframe有个致命的"BUG"就是iframe的高度无法自 ...

  3. Iframe高度自适应(兼容IE/Firefox、同域/跨域)

    在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此. 随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固 ...

  4. iframe高度自适应(同域)

    今天解决了iframe高度自适应的问题,不过这只是同域下的页面嵌入,以下是代码: function SetCwinHeight(){ var iframeid = document.getElemen ...

  5. iframe高度自适应

    前两天在网上看到了一道面试题,问iframe高度自适应的问题.发现自己之前几乎没有关注过iframe的问题,所以在这里记录一下. 原题目是: 页面A的域名是:http://www.taobao.com ...

  6. iframe高度自适应内容

    JS自适应高度,其实就是设置iframe的高度,使其等于内嵌网页的高度,从而看不出来滚动条和嵌套痕迹.对于用户体验和网站美观起着重要作用. 如果内容是固定的,那么我们可以通过CSS来给它直接定义一个高 ...

  7. IFrame 高度自适应的两种方式 .

    iframe 高度自适应一般是指: iframe 本身的高度 =  内容高度. 这样做可以使最外层不出现滚动条. 如果网页内容使用了Ajax方式填充内容的话. 由于内容是动态的. 以上方式应该变为: ...

  8. 兼容firefox的iframe高度自适应代码

    网上关于iframe高度自适应的代码有很多,但比较杂乱,本文根据实用性整理了以下代码: JavaScript部分: 折叠JavaScript Code复制内容到剪贴板 <script type= ...

  9. 跨域iframe高度自适应(兼容IE/FF/OP/Chrome)

    采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域.跨域两种情况. 由于客户端js使用浏览器的同源安全策 ...

随机推荐

  1. linus jsch上传文件

    package com.osplat.util; import java.io.*; import com.jcraft.jsch.*;import com.osplat.bean.Resultmod ...

  2. msf客户端渗透(一):payload利用简单示范

    针对Windows 开启侦听 查看payload选项 将1.exe传到网页上 win7访问网页并下载1.exe 下载好之后双击运行,在服务器端就获得了一个shell   针对linux 先获取到一个软 ...

  3. Tcp/Ip 三次握手与四次挥手

    1. TCP/IP模型 我们一般知道OSI的网络参考模型是分为7层:“应表会传网数物”——应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.而实际的Linux网络层协议是参照了OSI标准,但 ...

  4. PHPActiveRecord 学习一

    #连接数据库 <?phprequire_once dirname(__FILE__) . '/../../ActiveRecord.php'; // initialize ActiveRecor ...

  5. wamp 安装redis扩展

    phpredis扩展下载地址  http://windows.php.net/downloads/pecl/snaps/redis/ 1.选择redis DLL文件扩展 phpinfo 查看VC版本 ...

  6. 用PLSQL Developer 查看Oracle的存储过程

    1 2.输入 3.具体存储过程

  7. Centos 7 下 LAMP 部署

    一.介绍 LAMP is a combination of operating system and open-source software stack. The acronym of LAMP i ...

  8. java 对一个字符串去重,即去掉字符串内重复元素

    String str ="abc|efa|abc|efa|abc"; String str1 = str.replaceAll("(?s)(.)(?=.*\\1)&quo ...

  9. .net 报错access to the path c:\tempimagefiles\msc_cntr_0.txt is denied

    报错信息: 解决方法: 在 Web.Config 的 <System.Web> 里加 <identity impersonate="true"/> 节点即可 ...

  10. @RequestMapping 和 @GetMapping @PostMapping 区别

      @RequestMapping   和  @GetMapping @PostMapping 区别 @GetMapping是一个组合注解,是@RequestMapping(method = Requ ...