600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Iframe 自适应高度并实时监控高度变化的js代码

Iframe 自适应高度并实时监控高度变化的js代码

时间:2019-10-14 00:46:47

相关推荐

Iframe 自适应高度并实时监控高度变化的js代码

web前端|js教程

Iframe 自适应高度

web前端-js教程

google N次 + 百度M次 + 试验了1605次之后(听说农药1605就是实验了这么多次后出来的),得出下面成果,在IE7及Firefox3里试了下还能凑合着用用!

1、首先给出个Iframe。

源码搭建,ubuntu关闭灯光显卡,python 爬虫 微课堂,php后盾,seo886lzw

2、然后看看怎么获取Iframe中的页面的高度。

其实最麻烦的就是怎么让获取的高度准确,不同的方式不同的浏览器中获取到的值都会不一样!晕啊~~。参考了多方意见得出以下javascript函数(doc参数为window.document对象):

xmpp协议源码,前端vscode 插件,ubuntu无损,tomcat链接拒绝,sqlite3 pdf,小程序插件在人人商城不显示,前端如何选择用哪种框架,爬虫 拖动验证码,PHP安装窗户,荆门seo排名技巧,网站栏目页面实现方式,网页居中模板,模板 JSPlzw

function getDocHeight(doc) { //在IE中doc.body.scrollHeight的可信度最高 //在Firefox中,doc.height就可以了 var docHei = 0; var scrollHei;//scrollHeight var offsetHei;//offsetHeight,包含了边框的高度 if (doc.height) { //Firefox支持此属性,IE不支持 docHei = doc.height; } else if (doc.body) { //在IE中,只有body.scrollHeight是与当前页面的高度一致的, //其他的跳转几次后就会变的混乱,不知道是依照什么取的值! //似乎跟包含它的窗口的大小变化有关 if(doc.body.offsetHeight) docHei = offsetHei = doc.body.offsetHeight; if(doc.body.scrollHeight) docHei = scrollHei = doc.body.scrollHeight; } else if(doc.documentElement) { if(doc.documentElement.offsetHeight) docHei = offsetHei = doc.documentElement.offsetHeight; if(doc.documentElement.scrollHeight) docHei = scrollHei = doc.documentElement.scrollHeight; } /* docHei = Math.max(scrollHei,offsetHei);//取最大的值,某些情况下可能与实际页面高度不符! */ return docHei; }

3、最后修改Iframe的高度,并用一个定时器来不间断检查它包含的页面的高度变化。

手机喜帖源码,vscode缩进错误,sougu ubuntu,停止tomcat脚本,易语言sqlite参数,wordpress采集图片插件,前端框架spring面试题,在衣服上爬虫子,php判断客户端,沧州网络推广seo,软件公司网站模版,网页后台查找,帝国cms搜索表单模板lzw

function doReSize() { var iframeWin = window.frames[ifrm]; var iframeEl = window.document.getElementById? window.document.getElementById(ifrm): document.all? document.all[ifrm]: null; if ( iframeEl && iframeWin ) { var docHei = getDocHeight(iframeWin.document); if (docHei != iframeEl.style.height) iframeEl.style.height = docHei + px; } else if(iframeEl) { var docHei = getDocHeight(iframeEl.contentDocument); if (docHei != iframeEl.style.height) iframeEl.style.height = docHei + px; } } function runResizeTask() { doReSize(); setTimeout("runResizeTask()",500);//每隔半秒执行一次 } runResizeTask();

在这里就没有去考虑被包含的页面中是否有折叠、隐藏/展现的情况了!

完整js代码

function getDocHeight(doc){ //在IE中doc.body.scrollHeight的可信度最高 //在Firefox中,doc.height就可以了 var docHei = 0; var scrollHei;//scrollHeight var offsetHei;//offsetHeight,包含了边框的高度 if (doc.height){ //Firefox支持此属性,IE不支持 docHei = doc.height; } else if (doc.body){ //在IE中,只有body.scrollHeight是与当前页面的高度一致的, //其他的跳转几次后就会变的混乱,不知道是依照什么取的值! //似乎跟包含它的窗口的大小变化有关 if(doc.body.offsetHeight) docHei = offsetHei = doc.body.offsetHeight; if(doc.body.scrollHeight) docHei = scrollHei = doc.body.scrollHeight; } else if(doc.documentElement){ if(doc.documentElement.offsetHeight) docHei = offsetHei = doc.documentElement.offsetHeight; if(doc.documentElement.scrollHeight) docHei = scrollHei = doc.documentElement.scrollHeight; } /* docHei = Math.max(scrollHei,offsetHei);//取最大的值,某些情况下可能与实际页面高度不符! */ return docHei; } function doReSize(){ var iframeWin = window.frames[Main]; var iframeEl = window.document.getElementById? window.document.getElementById(Main): document.all? document.all[Main]: null; if ( iframeEl && iframeWin ){ var docHei = getDocHeight(iframeWin.document); if (docHei != iframeEl.style.height) iframeEl.style.height = docHei + px; } else if(iframeEl){ var docHei = getDocHeight(iframeEl.contentDocument); if (docHei != iframeEl.style.height) iframeEl.style.height = docHei + px; } } function runResizeTask(){ doReSize(); setTimeout("runResizeTask()",1000);//每隔1秒执行一次 } runResizeTask();

更多Iframe 自适应高度并实时监控高度变化的js代码相关文章请关注PHP中文网!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。