iframe高度自适应实现方案
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高度自适应实现方案的更多相关文章
- 完美实现跨域Iframe高度自适应【Iframe跨域高度自适应解决方案】
Iframe的强大功能偶就不多说了,它不但被开发人员经常运用,而且黑客们也常常使用它,总之用过的人知道它的强大之处,但是Iframe有个致命的“BUG”就是iframe的高度无法自动适应,这一点让很多 ...
- CSS完美实现iframe高度自适应(支持跨域)
Iframe的强大功能偶就不多说了,它不但被开发人员经常运用,而且黑客们也常常使用它,总之用过的人知道它的强大之处,但是Iframe有个致命的"BUG"就是iframe的高度无法自 ...
- Iframe高度自适应(兼容IE/Firefox、同域/跨域)
在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此. 随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固 ...
- iframe高度自适应(同域)
今天解决了iframe高度自适应的问题,不过这只是同域下的页面嵌入,以下是代码: function SetCwinHeight(){ var iframeid = document.getElemen ...
- iframe高度自适应
前两天在网上看到了一道面试题,问iframe高度自适应的问题.发现自己之前几乎没有关注过iframe的问题,所以在这里记录一下. 原题目是: 页面A的域名是:http://www.taobao.com ...
- iframe高度自适应内容
JS自适应高度,其实就是设置iframe的高度,使其等于内嵌网页的高度,从而看不出来滚动条和嵌套痕迹.对于用户体验和网站美观起着重要作用. 如果内容是固定的,那么我们可以通过CSS来给它直接定义一个高 ...
- IFrame 高度自适应的两种方式 .
iframe 高度自适应一般是指: iframe 本身的高度 = 内容高度. 这样做可以使最外层不出现滚动条. 如果网页内容使用了Ajax方式填充内容的话. 由于内容是动态的. 以上方式应该变为: ...
- 兼容firefox的iframe高度自适应代码
网上关于iframe高度自适应的代码有很多,但比较杂乱,本文根据实用性整理了以下代码: JavaScript部分: 折叠JavaScript Code复制内容到剪贴板 <script type= ...
- 跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域.跨域两种情况. 由于客户端js使用浏览器的同源安全策 ...
随机推荐
- centos静态绑定IP地址
Centos7 /etc/sysconfig/network-scripts/ifcfg-ens33
- DRF的视图和路由
DRF的视图 APIView Django中写CBV的时候继承的是View,rest_framework继承的是APIView, urlpatterns = [ url(r'^book$', Book ...
- Python+Selenium学习--设置等待时间
场景 sleep():设置固定休眠时间.python 的time 包提供了休眠方法sleep() ,导入time 包后就可以使用sleep()进行脚本的执行过程进行休眠.implicitly_wait ...
- 问题1:鼠标指向导航栏li,但li中a样式未改变
<!--HTML代码--><div class="nav-mid-left"> <ul> <li><a href=" ...
- LAB3 整数相加
//yuec2 Yue Cheng package lab3; public class Fraction { int numerator; int denominator; //obeject wi ...
- static 构造函数的认识
最近,看到一道面试题,如下 class Class1 { ; static Class1() { count++; } public Class1() { count++; } } Class1 on ...
- ubuntu下安装nginx1.11.10
(本页仅作为个人笔记参考) 为openssl,zlib,pcre配置编译 wget http://om88fxbu9.bkt.clouddn.com/package/nginx/nginx-1.11. ...
- 安装git工具在ubuntu系统
Git is one of the most popular tools used for distributed version control system(VCS). Git is common ...
- VS2015中C#版本6.0的新特性
[z]http://www.cnblogs.com/xszjk/articles/6417173.html [z]https://www.cnblogs.com/qixu/p/6047229.html ...
- 一个命令查看mysql的所有配置(原创)
在mysql的命令提示符下,执行下面一句话,查看mysql服务器的所有全局配置信息: mysql> show global variables; 得到: 上表的文本内容: "Varia ...