iframe自适应高度的多种方法方法小结.doc_第1页
iframe自适应高度的多种方法方法小结.doc_第2页
iframe自适应高度的多种方法方法小结.doc_第3页
iframe自适应高度的多种方法方法小结.doc_第4页
iframe自适应高度的多种方法方法小结.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

iframe自适应高度的多种方法方法小结2011-03-18 09:31:53|分类: Html标签 |标签: |字号大中小订阅 对于自适应高度的代码有很多,可效率什么的考虑进来好代码就不多见了,不过思路倒是差不多的-不带边框的iframe因为能和网页无缝的结合从而不刷新页面的情况下更新页面的部分数据成为可能,可是 iframe的大小却不像层那样可以“伸缩自如”,所以带来了使用上的麻烦,给iframe设置高度的时候多了也不好,少了更是不行,现在,让我来告诉大 家一种iframe动态调整高度的方法,主要是以下JS函数: 第一种方法:代码简单,兼容性还可以,大家可以先测试下。复制代码 代码如下:function SetWinHeight(obj) var win=obj; if (document.getElementById) if (win & !window.opera) if (win.contentDocument & win.contentDocument.body.offsetHeight) win.height = win.contentDocument.body.offsetHeight; else if(win.Document & win.Document.body.scrollHeight) win.height = win.Document.body.scrollHeight; 最后,加入iframe,不能丢掉onload属性,当然了,id也必须也函数中的win匹配 复制代码 代码如下: 这么的这种也是跟上面的解决方法类似的代码经典代码 iFrame 自适应高度,在IE6/IE7/IE8/Firefox/Opera/Chrome/Safari通过测试。 HTML代码: 复制代码 代码如下:Javascript代码: function iFrameHeight() var ifm= document.getElementById(iframepage); var subWeb = document.frames ? document.framesiframepage.document : ifm.contentDocument; if(ifm != null & subWeb != null) ifm.height = subWeb.body.scrollHeight; 下面这个兼容性更好一些复制代码 代码如下: function dyniframesize(down) var pTar = null; if (document.getElementById) pTar = document.getElementById(down); else eval(pTar = + down + ;); if (pTar & !window.opera) /begin resizing iframe pTar.style.display=block if (pTar.contentDocument & pTar.contentDocument.body.offsetHeight) /ns6 syntax pTar.height = pTar.contentDocument.body.offsetHeight +20; pTar.width = pTar.contentDocument.body.scrollWidth+20; else if (pTar.Document & pTar.Document.body.scrollHeight) /ie5+ syntax pTar.height = pTar.Document.body.scrollHeight; pTar.width = pTar.Document.body.scrollWidth; 另一种情况的iframe解决方案(超简单) 重要提示:src=中你必须填写的网页地址,一定要和本页面在同一个站点上,否则,会抱错,说“拒绝访问!”(实际上这是因为Js的跨域问题导致拒绝访问的) 之前自己也碰到过这个问题,为了得到答案去网上搜索,发现有不少人也遇到了这样的问题,现在就把解决方法共享一下 1、建立一个bottom.js的文件,然后输入下面的代码(只有两行哦) 复制代码 代码如下:parent.document.all(框架ID名).style.height=document.body.scrollHeight; parent.document.all(框架ID名).style.width=document.body.scrollWidth; 这里的 框架ID名 就是Iframe的ID,比如: 复制代码 代码如下: 2、给你网站里所有的被包含文件里面每个都加入 复制代码 代码如下: 3、OK,收工! 在WINXP、IE6下面测试通过。很简单吧! 实现 iframe 的自适应高度 实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象。 复制代码 代码如下: /* iframe自动适应页面 */ /输入你希望根据页面高度自动调整高度的iframe的名称的列表 /用逗号把每个iframe的ID分隔. 例如: myframe1, myframe2,可以只有一个窗体,则不用逗号。 /定义iframe的ID var iframeids=test /如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏 var iframehide=yes function dyniframesize() var dyniframe=new Array() for (i=0; iiframeids.length; i+) if (document.getElementById) /自动调整iframe高度 dyniframedyniframe.length = document.getElementById(iframeids); if (dyniframe & !window.opera) dyniframe.style.display=block if (dyniframe.contentDocument & dyniframe.contentDocument.body.offsetHeight) /如果用户的浏览器是NetScape dyniframe.height = dyniframe.contentDocument.body.offsetHeight; else if (dyniframe.Document & dyniframe.Document.body.scrollHeight) /如果用户的浏览器是IE dyniframe.height = dyniframe.Document.body.scrollHeight; /根据设定的参数来处理不支持iframe的浏览器的显示问题 if (document.all | document.getElementById) & iframehide=no) var tempobj=document.all? document.alliframeids : document.getElementById(iframeids) tempobj.style.display=block if (window.addEventListener) window.addEventListener(load, dyniframesize, false) else if (window.attachEvent) window.attachEvent(onload, dyniframesize) else window.onload=dyniframesize 第三中方法批量iframe自适应:工作中遇到iframe随所含内容自适应高度的问题,以前在网上看到过类似问题的解决方法,于是搜索一下,找到了一个比较完整的能够兼容浏览器的解决方法,省得自己写了。虽然不用自己写,思路还是要明白,基本上就是取得iframe属性src所指定的包含文档中内容的高度,然后用来设置iframe自身的高度,在iframe所在页面载入时对页面中的所有需要自适应高度的iframe进行自动设置,省时省力,如果确定页面中全部iframe都需要自适应高度,直接取得iframe数组给代码,就连ID都不用自己写了,完成程序搞定。(代码贴上来:) 复制代码 代码如下: /输入你希望根据页面高度自动调整高度的iframe的名称的列表 /用逗号把每个iframe的ID分隔. 例如: myframe1, myframe2,可以只有一个窗体,则不用逗号。 /定义iframe的ID var iframeids=test; /如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏 var iframehide=yes; function dyniframesize() var dyniframe=new Array() for (i=0; iiframeids.length; i+) if (document.getElementById) /自动调整iframe高度 dyniframedyniframe.length = document.getElementById(iframeidsi); if (dyniframei & !window.opera) dyniframei.style.display=block; if (dyniframei.contentDocument & dyniframei.contentDocument.body.offsetHeight) /如果用户的浏览器是NetScape dyniframei.height = dyniframei.contentDocument.body.offsetHeight; else if (dyniframei.Document & dyniframei.Document.body.scrollHeight) /如果用户的浏览器是IE dyniframei.height = dyniframei.Document.body.scrollHeight; /根据设定的参数来处理不支持iframe的浏览器的显示问题 if (document.all | document.getElementById) & iframehide=no) var tempobj=document.all? document.alliframeidsi : document.getElementById(iframeidsi); tempobj.style.display=block; if (window.addEventListener) window.addEventListener(load, dyniframesize, false); else if (window.attachEvent) window.attachEvent(onload, dyniframesize); else window.onload=dyniframesize; 网上有人改进了方法,解决了当iframe所包含文档内容高度动态变化时自动调整iframe高度的问题,原理是在iframe所在页面不断扫描iframe包含文档的内容高度并改变iframe自身高度,这种方法貌似解决了问题,但是对页面速度和系统资源占用是否有影响还很难说,感觉方法有些偏执,应该有更好的解决方法。第四种方法,只针对知道的iframe的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论