`
ln1058
  • 浏览: 92550 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iframe实现高度自适应,兼容FF、Opera、Safari

阅读更多

使用iframe可以省去很多ajax的复杂代码,但是在把iframe嵌入到div中会出现不能够自适应的问题,起初也在网上找了很多代码,大部分经过测试都不能兼容所有的浏览器。经过我在网上的搜索与相关的代码的修改,终于解决了兼容IE, FF, Opera 等大部分浏览器(Safari没有测试,应该也没问题)。

下面是我的代码,记录下来供以后参考:

index.html:

<div id="right">
<iframe id="rightFrame" name="frameContent" src="iframe.html"
    height="" scrolling="no" width="100%" frameborder="0" 
     onload="SetCwinHeight(this)"></iframe>
</div>

 

js代码:

function SetCwinHeight(iframeObj){
  if (document.getElementById){ 
      if (iframeObj){
          if (iframeObj.contentDocument && iframeObj.contentDocument.body.offsetHeight){
	      iframeObj.height = iframeObj.contentDocument.body.offsetHeight;
         } else if (document.frames[iframeObj.name].document && document.frames[iframeObj.name].document.body.scrollHeight){
                  iframeObj.height = document.frames[iframeObj.name].document.body.scrollHeight;
         }
     }
  }
}

 

iframe.html

  

<div class="content">		    
 有这样的名言叫:从哪跌倒,再从哪爬起来。想想自己,曾经跌倒过,却一直没能从那里爬起来。当年高考,虽然没有考
上理想的大学,但是却学到了理想的专业----工商管理。听起来很好地专业,因为这一专业毕竟和MBA有着千丝万缕的联系。所以那个时候很天真的给自己做了定位:努力学习,多学管理理论,将来一定要成为一名出色的职业经理人。为着这样的理想和目标,自认为我的大学生活还不算糜烂,因为毕竟有时间会光顾图书馆,阅读一些专业方面的书籍、报纸和杂志等,了解一些先进的管理理论和最新的经济前沿。
临近毕业,本来是满怀信心,希望自己可以得偿所愿,用这大学四年的所学来报答社会,谁知现实却是如此之残酷,我并未找
</div>

 iframe.html 中的js代码

window.onload = function() {
      if(top.location != self.location){
	var a = window.parent.document.getElementsByTagName('iframe');
	for (var i=0; i<a.length; i++){
	      if (a[i].name == self.name) {
	          a[i].height = document.body.scrollHeight; return;
               	     }
              }
      }
}

 这样就OK了,可以兼容全部主流浏览器了。

分享到:
评论
3 楼 崔志军 2014-04-15  
不兼容谷歌。。。。
2 楼 wafj999 2010-06-02  
不兼容谷歌浏览器
1 楼 xkxmud 2009-12-11  
有问题,不能跨域,是否有解决办法?

相关推荐

    完美解决跨域iframe的高度自适应

    完美解决跨域iframe的高度自适应,完美解决跨子域iframe的高度自适应,嵌入几个页面解决跨域iframe的高度自适应。。。

    Iframe 高度自适应,js控制Iframe 高度自适应.docx

    在浏览器兼容性方面,需要考虑 Firefox、IE、Opera 等不同的浏览器,并且需要使用不同的方法来实现 iframe 高度的自适应。 在实际应用中,需要根据具体情况选择合适的方法来实现 iframe 高度的自适应,以确保 ...

    解决IE,Firefox,chrome,safari浏览器中iframe显示高度自适应问题

    ### 解决IE、Firefox、Chrome、Safari浏览器中iframe显示高度自适应问题 在Web开发中,`iframe`(Inline Frame)元素常被用于嵌入另一个HTML文档到当前页面中,这种技术为开发者提供了极大的便利,例如加载广告、...

    iframe自动适应高度(完美自适应高度嵌套代码),兼容目前主流浏览器。

    这段描述中提到的“完美自适应高度嵌套代码”很可能就是一个实现上述逻辑的JS代码片段,它可能包含了针对不同浏览器的兼容性处理,比如对于IE6-9这些老版本浏览器的特殊处理,因为它们对某些DOM操作和事件处理的支持...

    JQuery IFrame框架高度自适应(支持嵌套–兼容IE,ff,safafi,chrome)

    2. `order_list.html`: 这个文件很可能被用作iframe的源,即被嵌入到index.html中的页面,可能包含了一些需要自适应高度的内容。 3. `jquery-1.7.2.min.js`: 这是jQuery库的版本1.7.2的压缩版,它是实现iframe高度...

    iframe自适应高度兼容各主流浏览器

    iFrame自适应高度兼容各主流浏览器 iFrame自适应高度是指在网页中嵌入iFrame时,使其高度能够自动适应其内容的高度,从而避免了出现滚动条的问题。下面是实现iFrame自适应高度的方法和相关知识点。 知识点1:...

    iframe内容高度 iframe自适应高度终极解决Iframe设置高度后无法缩小问题

    此外,由于跨域安全限制,`&lt;iframe&gt;`内页面与父页面可能无法进行通信,这会影响高度自适应功能的实现。确保`&lt;iframe&gt;`加载的页面与包含它的页面位于相同的源(协议+域名+端口)下,或者`&lt;iframe&gt;`加载的页面明确通过...

    js实现iframe自适应高度

    接下来,我们可以利用JavaScript的DOM操作和事件监听来实现自适应高度的功能。以下是一个基本的实现步骤: 1. **获取`iframe`元素**:通过`document.getElementById`或`querySelector`方法找到页面上的`iframe`元素...

    iframe高度自适应.pdf

    实现`iframe`高度自适应的基本思路是在页面加载完成或者窗口大小发生变化时,通过JavaScript动态计算嵌入内容的实际高度,并相应地调整`iframe`的高度。这种方法的核心在于编写合适的JavaScript函数来获取嵌入内容的...

    iframe自适应高度(兼容多种浏览器)

    ### iframe自适应高度(兼容多种浏览器) 在网页开发过程中,`iframe`是一种常用的元素,用于在当前页面中嵌入另一个HTML文档。然而,默认情况下,`iframe`的高度是固定的,这可能会导致内容显示不完全或者出现不必要...

    Iframe框架高度自适应的实现.doc

    总结来说,实现Iframe框架高度自适应的关键在于获取Iframe内容的实际高度,并将其应用于Iframe元素的样式。通过监听页面加载事件,我们可以确保在页面完全加载后自动调整Iframe的高度,以提供更好的用户体验。同时,...

    用jquery实现iframe高度自适应实例代码完美兼容多数浏览器

    最后,`MainFrame.html`和`用jquery实现iframe高度自适应完美兼容多数浏览器.html`可能是包含上述代码的实际示例页面,而`js`文件夹可能包含了jQuery库和其他可能的辅助脚本。 总结,通过jQuery,我们可以优雅地...

    iframe跨域高度自适应例子源码

    总的来说,这个例子通过`postMessage`实现了跨域`iframe`的高度自适应,使得`iframe`可以动态地根据其内容的高度进行调整,即使内容源与父页面不在同一域。这在处理第三方内容嵌入或者多个域间的交互时非常有用。...

    iframe高度自适应,多浏览器兼容

    本篇文章将详细讲解如何实现`iframe`的高度自适应以及在不同浏览器之间的兼容性处理。 一、`iframe`基本使用 `iframe`标签的基本结构如下: ```html &lt;iframe src=...

    iframe自适应高度和宽度

    ### iframe自适应高度和宽度详解 在Web开发中,`iframe`(Inline Frame)是一种常用的HTML元素,用于在当前页面内嵌入另一个HTML文档。它能够实现页面内部局部刷新的效果,广泛应用于各种复杂的网页布局中。然而,...

    Iframe 高度自适应浏览器高度

    使用CSS Flexbox或Grid也可以实现自适应效果。在父容器上设置相应的样式,可以让Iframe自动填充可用空间。例如,使用Flexbox: ```html ;"&gt; &lt;iframe id="myIframe" src="http://example.com" style="flex: 1;"&gt;...

    iframe高度自适应

    在某些情况下,如果`iframe`内容与主页面同源,可以使用CSS的`resize`属性来尝试让`iframe`自适应高度。但是,这种方法并不适用于跨域的情况。 2. **JavaScript/jQuery解决方案**: 对于跨域的`iframe`,可以采用...

    jsp页面iframe高度自适应的js代码.docx

    在 jsp 页面中,我们可以使用 js 代码来实现 iframe 的高度自适应。下面是一个简单的示例代码: ```html &lt;iframe id="agentFrame" name="agentFrame" src="" width="0" height="0" style="display:none;"&gt;&lt;/iframe&gt;...

    iFrame高度自适应终极解决方案(兼容IE7,8,9 Firefox3.6+,Chrome 12+)

    "iFrame高度自适应终极解决方案(兼容IE7,8,9 Firefox3.6+,Chrome 12+)"这个标题所指向的,就是一种跨浏览器的策略,确保iFrame内容无论何时更新,都能自动调整其高度,从而避免滚动条的出现和内容溢出。...

    iframe跨域嵌套自适应高度

    本文将详细介绍如何实现`iframe`跨域嵌套下的自适应高度调整,并讨论如何解决因跨域嵌套而可能引起的`session`丢失问题。 #### 一、`iframe`自适应高度原理与实现 1. **基本概念**: - **`iframe`**:`iframe`即...

Global site tag (gtag.js) - Google Analytics