`
flyzhouke
  • 浏览: 19524 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

如何利用子窗口控制父窗口iframe的高度

阅读更多

1. 在项目中用到了iframe,但是iframe里面的内容并不能确定有多长.
如:你的iframe包含的页面里面有分页,平均每页10条记录,到最后一页的时候只有2条,
由于iframe在正常情况下是不能指定其高度为100%的,这时候应该怎么办呢?
    告诉你,你现在再也不用为这个烦恼了,一句简单的javascript就帮你搞定这个问题.

例:
parent.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>iframeTest</title>
</head>
<body bgcolor="#FFFFCC">
<iframe name="iframeTest" src="iframe.html" ></iframe>
</body>
</html>

iframe.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>iframe</title>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<!-- html内容 -->
<script>
parent.document.all.iframeTest.height = document.body.scrollHeight;
</script>
</body>
</html>

注意两个html中的粗体部分即可.

2.现在的问题是当frame2.htm显示的内容很长时,有些内容看不到;如何做到该网页随iframe中嵌入的网页内容长度自动出现滚动条,并且这滚动条不是出现在iframe中
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
    <td colspan="2"><iframe frameborder=no
             marginheight=0 marginwidth=0 name=schistory scrolling=no
            src="frame2.htm" width=100%> </iframe></td>
</tr>
</table>


处理1:
你这个属于让iframe的子页面决定父页面的高度。
写javascript吧。
<script language="Javascript">
function window.onload()
{
parent.document.all("mainFrame").style.height=document.body.scrollHeight+670;
}
</script>
写在iframe调用的子页面里面
后面的670是父页面比子页面高的高度

<script language="javascript">
parent.document.getElementById(mainFrame).height = '200px';
</script>

直接设置页面大小。

3.如何动态控制IFrame的长和宽

主页面要放置一个IFrame用于嵌套显示子页面的信息,但是子页面的数据多少不一,导致子页面可能会很长或很短,要动态控制IFrame的高低随子页面的长短而变化。
主页面如下:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY >
<TABLE>
    <TR>
<TD>
   <iframe id="frmTest" height="100px" name="frmTest" src="in.html"></iframe>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

子页面只需要做如下处理即可:
在页面的最下端添加如下JS脚本:
<script language=javascript>
window.parent.document.all("frmTest").style.height = document.body.scrollHeight + 10;
</script>

其中frmTest即为Main页面的IFrame的ID。

分享到:
评论

相关推荐

    iframe自适应宽高

    这个库允许的高度与同跨域iframe来适应他们所...在iframe页面链接修复和支持iFrame与父页面之间的链接。 提供自定义的大小和滚动方法。 使家长地位和视口大小的iframe。 与ViewerJS支持PDF和ODF文档。 后备支持到IE8。

    iframe高度自适应.pdf

    ### iframe高度自适应技术详解 在网页开发过程中,经常会遇到需要在一个页面中嵌入另一个页面的需求,这通常通过HTML的`iframe`元素实现。然而,一个常见的问题是当嵌入的内容高度变化时,如何使`iframe`的高度能够...

    网页制作中Iframe自适应高度的解决办法

    这时可以利用`window.postMessage`进行父子窗口之间的通信,由子窗口(Iframe内的页面)发送其高度给父窗口,再由父窗口调整Iframe的高度。 子窗口(Iframe内容): ```javascript window.parent.postMessage({...

    easyUi弹出window窗口传值与调用父页面的方法,子页面给父页面赋值

    EasyUI提供了一种方式,通过`parent`关键字来访问父窗口的对象,从而调用其上的函数。假设在父页面上有一个名为`updateParentData`的函数,可以在子页面中这样调用: ```javascript parent.updateParentData('子...

    iframe自适应高度 .txt

    // 通知父窗口调整高度 window.parent.adjustIframeHeight(document.getElementById('example')); }; ``` ##### 方法三:使用第三方库 **优点**:简化了开发流程,提供了更多的功能。 **缺点**:可能会增加...

    js window.open iframe dialog

    例如,通过`window.opener`对象,子窗口可以访问到打开它的父窗口,而`iframe`内的脚本可以通过`parent`对象与父页面通信。 - 父窗口调用子窗口: ```javascript let newWindow = window.open('...'); newWindow....

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

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

    frameSet应用 子父窗口传值

    例如,假设有一个名为`leftFrame`的子窗口想要向名为`rightFrame`的父窗口发送消息: ```javascript // 在leftFrame中 window.parent.rightFrame.postMessage('这是从左窗体传来的信息', '*'); ``` 在`rightFrame`...

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

    这段代码会在窗口大小改变时,使`iframe`的高度适应其内部内容的高度。 总结,理解和掌握`iframe`的跨域解决方案以及自适应策略,对于开发高效且用户体验良好的Web应用至关重要。在实际应用中,还需要注意安全性、...

    ios 不支持 iframe 的完美解决方法(兼容iOS&安卓)

    在iOS中,当`iframe`内的子页面高度超过父页面时,若子页面触发弹框,弹框可能会出现在视口下方,因为它的位置是相对于子页面而不是视口进行定位。这在Android系统中通常不会发生,因此开发者需要采取特定的策略来...

    Iframe框架自动适应高度示例详解.pdf

    在一些特殊情况下,我们需要让Iframe高度自动适应其中内容的大小。上面提供的文档内容,尽管通过OCR扫描技术出现了一些识别错误,但是核心的代码和思路是清晰的,能够帮助我们理解如何实现Iframe高度的自适应。 从...

    iframe_height:跨域 iframe 高度调整

    在子页面中,从您的文档就绪函数或窗口加载函数调用 messageParent()。 messageParent 函数尝试使用 document.scrollHeight 来获取文档的高度,但这并不总是适用于每个人。 您可能只想使用 jquery 或其他选择器获取...

    iframe子页面操作父页面并实现屏蔽页面弹出层效果

    在本文中,我们将探讨如何在使用iframe嵌套页面时,从子页面(iframe内部页面)操作父页面(包含iframe的页面),以屏蔽整个父页面并弹出特定的层。这种技术尤其适用于需要在子页面加载时阻止用户与父页面互动,同时...

    动态的改变IFrame的高度实现IFrame自动伸展适应高度

    如果页面高度大于窗口高度,那么将IFrame高度设置为页面高度;否则,设置为窗口高度。 子页面中的jQuery代码如下: ```javascript $(function(){ var winH = $(window).height(); var bodyH = $(document)....

    用DIV仿iframe框架布局效果

    可以使用`window.postMessage` API进行跨窗口通信,使得父页面和子页面(实际是同一个页面的不同部分)可以安全地交换信息。 4. **SEO优化**: - 由于搜索引擎爬虫可能无法执行JavaScript,因此在设计时应考虑SEO...

    lhgdialog文件加跨iframe框架使用

    总结来说,lhgDialog结合跨iframe框架使用,需要理解JavaScript的跨域通信机制,利用`window.postMessage`来传递对话框的配置信息,然后在子页面中监听并处理这些信息,从而实现在iframe内打开lhgDialog的功能。...

    Iframe交互语法

    父窗口与子Iframe之间的交互通常涉及跨域问题,但当两者位于同一域名下时,可以通过`window.parent`和`window.frames`对象来实现通信。 示例代码: ```html &lt;!-- example.htm --&gt; (window.frames['tt'].document....

    iframe 的使用

    - `width` 和 `height`:设置 Iframe 的宽度和高度。 - `scrolling`:控制 Iframe 内部内容是否显示滚动条,默认为 `"auto"`,还可以设置为 `"yes"` 或 `"no"`。 - `frameborder`:控制 Iframe 边框的显示,值为 "0...

    前端项目-iframe-resizer.zip

    1. **跨域通信**:`iframe-resizer`利用`postMessage` API实现跨域通信,允许父页面和`iframe`之间安全地交换信息,如调整`iframe`尺寸的指令。 2. **动态大小调整**:当`iframe`内部内容发生变化,比如滚动、加载...

    如何设置iframe高度自适应在跨域情况下的可用方法

    当子页面和父页面在同一域内时,可以使用JavaScript定时检测来获取并调整iframe高度。例如,可以创建一个函数`ChangeFrameHeight`,它通过定时器每隔一定时间(如2秒)检查子页面的高度,并相应地调整iframe的高度...

Global site tag (gtag.js) - Google Analytics