`
JackAndroid
  • 浏览: 136256 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

动态调整iframe页面的大小

阅读更多

   今天遇到了一个问题,在父页面内有一个iframe能自动根据载入页面的大小而动态调整页面大小。特此记录下解决方法:

 

 父页面main.html内js代码:

 /*动态调整iframe的大小*/
    function changeIframeSize(iframeContentHeight){
       document.getElementById('rightContent').height = iframeContentHeight+20;
    }
    /*iframe页面载入处理函数*/
    function iframeOnload()
    {
        var frms=document.getElementById('rightContent');
        /*判断浏览器类型*/
         var height=($.browser.msie||$.browser.opera)? frms.document.body.scrollHeight:frms.contentDocument.body.offsetHeight;
         changeIframeSize(height);
         /*this.height=rightContent.document.body.scrollHeight*/
    }

  父页面main.html内的iframe:

 <div id="right" >
     <iframe width="100%" frameBorder="0" frameSpacing="0" scrolling="auto" marginHeight="0" marginWidth="0" name="rightContent" src="articlesList.jsp?categoryId=-1" id="rightContent" onload="iframeOnload()" ></iframe>
     </div>

 载入页面sub.html内动态调整js代码:

	  var height=($.browser.msie||$.browser.opera)? document.body.scrollHeight:document.body.offsetHeight;/*判断浏览器类型*/
	  parent.changeIframeSize(height);/*调用父页面内的js函数,调整iframe的大小*/

 

如上述代码所示,动态调整函数主要有两个:

1.iframeOnload主要用于当载入页面刚载入完成后,则响应iframe的onload事件;

 

2.changeIframeSize用于实际调整iframe的大小。iframe的onload的事件只有当该页面第一次载入时候才触发,而如果我们希望在页面载入以后,iframe仍然能根据载入页面的大小变化而动态调整,则是在载入页面中手动调用父页面内的changeIframeSize函数。

 

上述代码需要注意的地方如下:

1.$.browser.msie||$.browser.opera,用于判断浏览器的类型,这主要是不同浏览器对页面的实际尺寸理解不一致造成。我这里是利用jQuery来判断浏览器类型,因而还需要载入jQuery.js文件;

2.注意表示iframe内的载入页面在IE中无论是父页面还是载入页面都是调用document的;而在firefox中则不一样,在父亲中则是调用contentDocument,而在载入页面中则是用document,具体请参见上述两处浏览器类型判断代码即可。

分享到:
评论

相关推荐

    iframe自适应子页面内容高度

    在网页开发中,`iframe...3. 动态调整:在父页面中监听事件,接收到高度信息后更新`iframe`的高度。 通过以上方法,我们可以创建一个流畅的用户体验,让用户在浏览页面时无需滚动主页面就能查看`iframe`中的全部内容。

    iframe跨域常用问题和iframe页面自适应

    为了让`iframe`内容能根据容器大小动态调整,开发者需要关注以下几点: 1. **宽度和高度设置**:确保`iframe`元素的`width`和`height`属性设置正确。可以设置为百分比,使其相对于包含它的容器自适应,如: ```...

    嵌入到HTML的iframe自动适应大小

    自动调整iframe高度的核心在于监听页面加载完成事件,然后通过JavaScript读取iframe内部内容的高度,并将其设置为iframe本身的高度。这一过程通常需要针对不同浏览器进行适配,因为iframe在不同的浏览器中可能采用...

    iframe自适应宽高

    发现可以导致页面大小调整事件(窗口大小调整,CSS动画和过渡,改变方向和鼠标事件)。 简化通讯和主机之间通过PostMessage iframe的网页。 在iframe页面链接修复和支持iFrame与父页面之间的链接。 提供自定义的大小...

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

    然而,`&lt;iframe&gt;`的高度自适应问题常常困扰着开发者,尤其是当`&lt;iframe&gt;`内部的内容动态加载或者变化时,如何让`&lt;iframe&gt;`自动调整其高度以适应内容,而不会导致滚动条溢出或内容被截断,成为了一个常见需求。...

    iframe根据页面内容自适应高度和宽度

    } // 当子页面大小改变时,通知父页面调整大小 ``` 通过以上步骤,`iframe-resizer`库能够确保`iframe`始终根据其内容自适应高度,无论内容是否跨域。 总结来说,实现`iframe`根据页面内容自适应高度和宽度,...

    iframe父页面与子页面通信及相互调用方法

    - 使用`iframeResizer`等插件可以自动调整`iframe`的大小,避免因内容变化导致的布局闪烁。 8. **总结** `iframe`通信涉及多个方面,包括同源策略、跨域通信、DOM操作和事件监听。理解并熟练掌握这些技巧对于开发...

    iframe弹出框遮罩父类页面

    1. **创建iframe**:在子页面HTML中,我们需要创建一个`iframe`元素,并设置相应的属性,如`src`指向要加载的页面,`width`和`height`定义弹出框的大小,以及`style`属性用于设置初始的隐藏状态。 2. **遮罩层**:...

    用javascript动态调整iframe高度的方法

    为了解决这个问题,我们可以利用JavaScript来动态调整iframe的高度,确保它始终适应其内部内容的大小。 在描述中提到的方法是通过编写一段JavaScript代码,使得iframe能够根据其内部页面内容的高度自动调整。这段...

    iframe高度自适应.pdf

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

    iframe-resizer:在页面链接,嵌套和多个iFrame中,支持大小相同的跨域iFrame,并支持窗口内容大小调整

    提供多种页面大小计算方法,以支持复杂CSS布局。 检测对DOM的更改,该更改可能导致使用调整页面的大小。 检测可能导致页面调整大小的事件(“窗口调整大小”,“ CSS动画和过渡”,“方向改变”和“鼠标”事件)。 ...

    完全搞定iframe(框架)里的滚动条.doc

    2. **动态调整iframe的高度**:根据获取的高度动态地调整iframe的高度,确保内容能够完全展示,同时避免额外的滚动条出现。 #### 示例代码 以下是一个简单的示例,展示了如何使用JavaScript动态调整iframe的高度: ...

    Iframe 框架自适应被嵌入页面高度

    首先,我们要理解为什么需要动态调整Iframe的高度。由于Iframe的内容可能来自于不同的来源,其内容长度是不确定的,因此在页面加载时设置一个固定的高度往往无法满足需求。特别是当Iframe加载的内容包含大量文本、...

    跨域控制iframe高度

    这在需要动态调整iframe高度以适应内容时会带来挑战。本文将深入探讨如何实现跨域控制iframe的高度,以优化用户体验。 首先,我们需要理解同源策略。同源策略是浏览器为了保障安全而实施的一项规定,它只允许...

    解决下拉菜单被iframe遮住问题

    // 检测遮挡情况并调整iframe位置 } } // 在下拉菜单显示时触发检查 document.querySelector('.dropdown').addEventListener('show.bs.dropdown', checkDropdownOverlap); ``` #### 3.4 CSS定位调整 有时,问题...

    js图片iframe内页父页展示全屏

    综上所述,要实现"js图片iframe内页父页展示全屏"的功能,我们需要在父页面通过`iframe`嵌入子页面,然后利用JavaScript监听窗口大小变化,动态调整`iframe`中图片的尺寸,以达到全屏显示的效果。同时,子页面的CSS...

    iframe自适应高度和宽度

    下面是一个简单的示例,演示如何通过JavaScript来动态调整`iframe`的高度: ```html &lt;iframe name="myframe" src="myframe.htm" frameborder="0" scrolling="auto" width="100%" height="100%" onload="document....

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

    为了解决这个问题,我们需要一种方法来动态地调整`iframe`的高度,使其与内容匹配。这种技术通常涉及到JavaScript,通过监听`iframe`的`load`事件,然后获取`iframe`内的文档高度,并设置到`iframe`的`height`属性上...

    JS动态修改iframe高度和宽度的方法

    4. 响应窗口大小变化:可以添加事件监听器,如window.onresize事件,根据窗口的大小变化来动态调整iframe的高度和宽度。 5. 使用窗口方法间接控制尺寸:可以通过iframe元素的contentWindow对象访问其内部窗口,进而...

Global site tag (gtag.js) - Google Analytics