`
JackAndroid
  • 浏览: 135153 次
  • 性别: 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自适应宽高

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

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

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

    iframe自适应大小.docx

    不带边框的iframe因为能和网页无缝的结合从而使在不刷新页面的情况下只更新页面的部分数据成为可能。但中iframe的大小却不能像层那样可以“伸缩自如”,所以带来了使用上...现在来描述一种iframe 动态调整高度的方法...

    多个iframe自动调整大小的问题

    怎样用一个函数,自动调整这个页面里所有iframe的高度呢? function change_size(iframe) { iframe.style.height=info_content.document.body.scrollHeight+1+”px”; } 我用过这种方式,但是等号后面的第一个对象...

    iframe-resizer-react:Iframe-Resizer的官方React界面

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

    窗格管理:当内容来自其他来源时,iframe调整大小器可以安全工作

    如果找到了此存储库,则可能已经发现了动态调整iframe大小以适合其内容的痛苦(当该内容来自其他来源时)。 幸运的是,您的搜索已结束! 尽管您确实需要能够将脚本添加到iframe中加载的目标页面。 轻松管理您的...

    iframe_height:跨域 iframe 高度调整

    iframe 高度是一个允许跨域消息传递的简单工具,特别是针对响应式设计调整 iframe 高度的大小。 用法 将 parent.js 文件添加到包含页面,将 child.js 添加到包含页面。 在父页面中调用: IframeResize.load(选项);...

    主页面中的两个iframe实现鼠标拖动改变其大小

    iframe实现鼠标拖动改变其大小在一个页面中的两个iframe的情况下,此方法相当实用,感兴趣的各位不妨参考下,或许对你有所帮助

    gravity-forms-iframe:“重力表单”插件,用于将表单嵌入外部网站上自动调整大小的iframe中

    重力式Iframe附加组件 在任何网站上的iframe中嵌入重力表单。... 另外,只要表单高度发生变化,iframe就会自动调整大小,例如,由于条件逻辑而显示或隐藏字段时。 产品特点 有选择地启用嵌入单个表格。 自动调整ifr

    js实现iframe动态调整高度的代码

    iframe,尤其是不带边框的iframe因为能和网页无缝的结合从而不刷新页面的情况下更新页面的部分数据成为可能,可是iframe的大小却不像层那样可以“伸缩自如”,所以带来了使用上的麻烦,给iframe设置高度的时候多了也...

    jquery.cb-iframesize.js:使iframe响应的JQuery插件

    概述&gt;一个jQuery插件,它根据内容的宽度(屏幕的宽度)扩展和缩小浏览器上显示iframe要素の高さ同时保持纵横比(支持实时调整大小) ## &lt;实施方法&gt; ### 1.读取外部文件将jQuery和此插件加载到页面中 [removed]...

    web响应式布局中iframe自适应的方法

    响应式的概念应该是覆盖了自适应,...响应式布局可以根据屏幕的大小自动的调整页面的展现方式,以及布局。这篇问题给大家介绍了在web响应式布局中让iframe自适应的方法,有需要的朋友可以参考借鉴,下面来一起看看吧。

    DebugBar—7.0.2注册码.txt

    - 调整大小IE窗口 - 缩放页面 - 查看源代码 - 查看的MSHTML集成ActiveX源代码 - 查看HTML DOM树 - 查看原广告源代码解释 - “查看”选项卡属性 - 编辑选项卡属性 - 查看HTTP和HTTPS头 - 验证为主要页面的html代码和...

    html页面高度不固定在不同浏览器下的兼容性设置

    页面需要嵌套在跨域的iframe中,而页面高度不固定,需要每个页面把自己的高度获得后,通过js通知iframe调整显示。 而页面在获得自己的高度时,发现总是比预想的大。经过参考别人的博客,发现原来是w3c标准的原因。 ...

    be_welcome:TYPO3 扩展,用于在后端的 iframe 中显示网站的内容

    该文件允许自动调整iframe的大小。 有关更多详细信息,请参阅 。 将静态HTML页面存储在公共可用的Web服务器上。 我们假设您可以通过访问该网站TYPO3实例使用TYPO3的扩展管理器安装扩展be_welcome 。 转到扩展程序...

    +字形大小改变Lite「A+ FontSize Changer Lite」-crx插件

    错误修正:在调整大多数页面的字体大小之后,通过计算更改前的位置,然后设置更改后的滚动位置,可以将当前页面视图的滚动位置保持在同一位置。此版本还显示颜色选择器和颜色十六进制值的文本输入,因此您可以手动...

    超实用的jQuery代码段

    4.12 动态调整页面的字体大小 第5章 jQuery实现用户输入自动完成功能 5.1 最简单的用户输入自动完成 5.2 使用远程数据源的自动完成 5.3 带缓存的自动完成 5.4 带滚动条的自动完成 5.5 Combobox风格的自动完成 5.6 ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -增加示例(iframe/parent_postback_run3.aspx),如何通过简单的Javascript代码回发父页面(feedback:eroach)。 -修正一些书写错误(feedback:bmck)。 -从Region控件中删除SplitColor属性,增加CollapseMode, ...

    ExtAspNet_v2.3.2_dll

    -增加示例(iframe/parent_postback_run3.aspx),如何通过简单的Javascript代码回发父页面(feedback:eroach)。 -修正一些书写错误(feedback:bmck)。 -从Region控件中删除SplitColor属性,增加CollapseMode, ...

    解决layui弹出层layer的area过大被遮挡的问题

    layer弹出窗口在弹出时指定了area,弹出后,如果当前页面(iframe)大小比弹出的窗口小,那么就会出现无法操作弹出窗口的尴尬情况。 如图: 弹出窗口比当前页面大,这时,唯有放大整个页面才能看到完全的弹出窗口,...

Global site tag (gtag.js) - Google Analytics