`
阅读更多

//index.html
<frameset rows="98,*,8" frameborder="no" border="0" framespacing="0" name="centop">
  <frame src="top.aspx" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" />
  <frame src="center.html" name="mainFrame" id="mainFrame" />
  <frame src="down.html" name="bottomFrame" scrolling="No" noresize="noresize" id="bottomFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>

//center.html


<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" style="table-layout:fixed;">
  <tr>
    <td><iframe id="I2" name="I2" height="100%" width="100%" border="0" frameborder="0" src="middel.html"> 浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe></td>
    <td width="6" bgcolor="#1873aa" style=" width:6px;">&nbsp;</td>
  </tr>
</table>

//middel.html


<body style="overflow:hidden">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" style="table-layout:fixed;">
  <tr>
    <td width="171" id=frmTitle noWrap name="fmTitle" align="center" valign="top"><table width="171" height="100%" border="0" cellpadding="0" cellspacing="0" style="table-layout:fixed;">
      <tr>
        <td  bgcolor="#1873aa" style="width:6px;">&nbsp;</td>
        <td width="165"><iframe name="I1" height="100%" width="165" src="left.aspx" border="0" frameborder="0" scrolling="no"> 浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe></td>
      </tr>
    </table>  </td>
    <td width="6"  style="width:6px;"valign="middle" bgcolor="1873aa" onclick=switchSysBar()><SPAN class=navPoint
id=switchPoint title=关闭/打开左栏><img src="images/main_55.gif" name="img1" width=6 height=40 id=img1></SPAN></td>
    <td width="100%" align="center" valign="top"><iframe id="if_center" name="if_center" height="100%" width="100%" border="0" frameborder="0" src="GoogleMap/BaiduMap.aspx"> 浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe></td>
  </tr>
</table>
</body>

 

//top.html

<table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="77%" height="25" valign="bottom"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                   
                    <td width="50" height="19">
                        <div align="center">
                            <img src="images/main_12.gif" width="49" height="19" onclick="window.parent.location.href='index.html'"></div>
                    </td>
                    <td width="50">
                        <div align="center">
                            <img src="images/main_14.gif" width="48" height="19" onclick="javascript:history.go(-1);"></div>
                    </td>
                    <td width="50">
                        <div align="center">
                            <img src="images/main_16.gif" width="48" height="19" onclick="javascript:history.go(1);"></div>
                    </td>
                    <td width="50">
                        <div align="center">
                            <img src="images/main_18.gif" width="48" height="19" onclick="parent.frames['mainFrame'].document.getElementById('I2').contentWindow.document.getElementById('if_center').contentWindow.document.location.href=parent.frames['mainFrame'].document.getElementById('I2').contentWindow.document.getElementById('if_center').contentWindow.document.location.href;"></div>
                    </td>
                    <td width="50">
                        <div align="center">
                            <img src="images/main_20.gif" width="48" height="19" onclick="window.parent.location.href='Login.aspx'"></div>
                    </td>
                    <td width="26">
                        <div align="center">
                            <img src="images/main_21.gif" width="26" height="19"></div>
                    </td>
                    <%-- <td width="100">
                        <div align="center">
                            <img src="images/main_22.gif" width="98" height="19"></div>
                    </td>--%>
                    <td>&nbsp;</td>
                  </tr>
                </table>

 

 

parent.frames['mainFrame'].document.getElementById('I2').contentWindow.document.getElementById('if_center').contentWindow.document.location.href=parent.frames['mainFrame'].document.getElementById('I2').contentWindow.document.getElementById('if_center').contentWindow.document.location.href;

 

iframe中元素的获取

 

   iframe本身是一个独立的窗口,获取取中的元素,要先取得这个窗口的document.可以用document.getElementById("iframe_id").contentWindow.document来获得。
 
 
 
 
参考
一、需求与遇到的问题
  在网站的后台管理中使用了iframe框架布局,包括顶部菜单、左侧导航和主页面。需求是:点击主页面上的一个按钮,在顶部菜单栏的右侧显示“退出”链接,点击可退出系统。
  我的思路是:在顶部的菜单页面放一个不可见的“退出”链接,当用户点击位于iframe中的主页面(mainPage.htm)中的按钮时,在顶部菜单页面的右侧显示“退出”。
  我现在遇到的问题是:如何在页面的一个iframe子页面(mainPage.htm)中获取并且操作其它iframe子页面(比如topPage.htm)中的HTML元素?
二、通过JS获取并操作iframe中的元素来解决问题
  这里主要就是通过JS来操作Window对象。Window 对象表示浏览器中打开的窗口,如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。
  经过我在网上查资料,找到了JS操作iframe中HTML元素的方法。示例如下。

复制代码 代码如下:
function ShowExit() {
//获取iframe的window对象
var topWin = window.top.document.getElementById("topNav").contentWindow;
//通过获取到的window对象操作HTML元素,这和普通页面一样
topWin.document.getElementById("exit").style.visibility = "visible";
}  说明:第一步,通过window.top.document.getElementById("topNav")方法获取了顶部菜单页面(topPage.htm)所在的iframe对象;第二步,通过上一步获取到的iframe对象的contentWindow属性得到了iframe中元素所在的window对象;第三步,通过上一步获取到的window对象来操作iframe框架中的元素,这和操作不在iframe框架中的普通HTML元素是一样的。
 
1、子页面访问父页面元素
 
parent.document.getElementById('id')和document相关的方法都可以这样用
 
2、父页面访问子页面元素
 
document.getElementById('iframeId').contentDocument.getElementsByTagName('table'); contentDocument后可以使用document相关方法
 
3、子页面访问父页面js变量(注:父页面的js变量需为全局变量)
 
子页面var variable = parent.variableParent (variableParent为父页面定义的变量)
 
4、父页面访问子页面js变量
 
这部分目前的解决方案是在父页面设置全局变量,在子页面进行修改后将子页面的变量赋值给父页面
 
IE FF都可以直接通过Frame的Name来访问,但是FrameSet不支持name属性
 
<a href="#" onclick="parent.document.getElementById('cenFrame').cols='185,*,10'">显示菜单</a>
 

注意这样修改frame里的页面有限制,就是必须是同域下的,否则无法访问
如果是同一域下,但是子域名不同,那么涉及到的js,html文件都加上一句。
document.domain = xxx.com [这里填写你的域名]
document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');
分享到:
评论

相关推荐

    vue基于iframe优雅实现全新的微前端方案,继承iframe的优点,补足 iframe 的缺点,让 iframe 焕发新生

    基于iframe优雅实现全新的微前端方案,继承iframe的优点,补足 iframe 的缺点,让 iframe 焕发新生。 适合人群:具备一定编程基础,工作1-3年的研发人员 能学到什么: 1、使用postMessage方法来完成基座项目和子...

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

    在网页开发中,`&lt;iframe&gt;`元素是一种非常实用的工具,它允许我们在一个页面中嵌入另一个页面的内容,实现页面的组合或者隔离加载。然而,`&lt;iframe&gt;`的高度自适应问题常常困扰着开发者,尤其是当`&lt;iframe&gt;`内部的内容...

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

    本篇文章将深入探讨两个关键知识点:`iframe`跨域问题以及`iframe`页面的自适应。 一、`iframe`跨域问题 跨域是Web开发中的一个重要概念,它限制了浏览器从一个源获取另一个源的资源,以保护用户的安全。当`iframe...

    easyui iframe 页面重复加载的问题

    在使用easyui框架开发Web应用时,特别是在使用tab布局的时候,开发者可能会遇到页面内容被放置在iframe中时,页面多次加载的问题。这种情况尤其会在使用easyui的tab布局时发生,因为easyui会默认加载所有tab的内容,...

    iframe自适应宽高

    这个库允许的高度与同跨域iframe来适应他们所包含的内容的宽度自动调整大小。它最常见的问题与使用iframes提供一系列的功能,其中包括: 高度和宽度大小的iframe内容大小。 作品以多个嵌套的iframe。 跨域iframe域...

    iframe对另一个iframe控制的Demo

    本实例“iframe对另一个iframe控制的Demo”展示了如何通过JavaScript或者jQuery实现一个iframe对另一个iframe的交互,以及如何控制iframe的显示与隐藏。这种技术广泛应用于构建复杂的Web应用程序,如页面内的多窗口...

    iframe消息监听传递

    `iframe`跨域消息传递是解决这个问题的关键技术,它允许不同源的`iframe`和主页面之间安全地交换数据。 标题"iframe消息监听传递"主要涉及到两个核心概念:`postMessage`和`message`事件。这两个API是HTML5引入的,...

    Iframe内存泄露分析

    Iframe 内存泄露分析 Iframe 内存泄露分析是指在使用 Iframe 时,由于互相引用、闭包、跨页面泄漏、伪泄漏等原因,导致浏览器内存泄漏的问题。这种问题在 Ajax 盛行以前并不是什么大问题,因为都是通过页面跳转和...

    div被iframe遮住的几种情况及解决方法

    在前端开发过程中,DIV元素被IFRAME遮挡是一个常见的问题,尤其是当页面布局复杂或存在多层嵌套的元素时。以下将详细阐述几种DIV被IFRAME遮挡的情况,并提供相应的解决方法。 首先,要了解的是IFRAME是一种HTML元素...

    Flex中利用IFrame解决嵌入HTML时Flex组件被遮挡和IFrame被隐藏的问题

    本文将详细讲解如何利用IFrame解决这些问题,特别是针对Flex菜单的遮挡问题。 首先,理解Flex和IFrame的基本概念是必要的。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。而...

    JS去除iframe滚动条的方法

    然而,有时嵌入的网页内容尺寸可能会超过iframe的可视区域,这时浏览器会自动为iframe添加滚动条,以便用户能够滚动查看整个内容区域。虽然这对于某些情况可能是必要的,但在其他一些情况下,开发者可能希望去除滚动...

    JQUERY实现iframe页面切换功能

    本篇文章将详细讲解如何利用jQuery实现iframe页面的切换功能,以便于创建更丰富的用户体验和更高效的页面加载策略。 首先,我们需要理解iframe的基本概念。Iframe(Inline Frame)是HTML中的一个元素,它允许我们在...

    iframe高度自适应.pdf

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

    iframe自适应高度和宽度

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

    iframe兄弟页面相互调用

    在多页面交互的场景下,`iframe`中的子页面与父页面以及与其他兄弟`iframe`之间的通信就显得尤为重要。本文将详细讲解如何实现`iframe`兄弟页面之间的相互调用。 首先,理解`iframe`的结构是关键。一个`iframe`元素...

    js调用-嵌入iframe

    其中,"js调用-嵌入iframe"是JS在处理页面元素,特别是与IFrame(内联框架)交互时的一个重要技术。IFrame允许在单一网页中嵌入另一个网页,从而实现内容的复用或隔离。下面我们将详细探讨这一主题。 **1. IFrame...

    外部滚动条控制iframe

    ### 外部滚动条控制iframe:深入解析与实践 在网页设计中,iframe(Inline Frame)是一种常用的HTML元素,用于在当前文档内嵌入另一个HTML文档。然而,默认情况下,iframe内的滚动行为是独立于主页面的,即其滚动条...

    iframe(图片过渡效果欣赏)

    标题“iframe(图片过渡效果欣赏)”暗示我们将探讨如何使用`iframe`来创建引人注目的动态图片展示。 `iframe`的基本语法如下: ```html &lt;iframe src="URL" width="宽度" height="高度" frameborder="0" scrolling=...

    js 实现iframe 之间传值

    然而,由于`iframe`本质上是独立的窗口,因此在不同`iframe`之间传递数据可能会遇到跨域问题。本篇文章将详细介绍如何使用JavaScript来实现在`iframe`之间传递值。 1. 同源策略与跨域限制: JavaScript遵循同源...

    使用iframe在网页中嵌入其他网页的方法

    在这种情况下,`&lt;iframe&gt;` 标签成为了一个非常实用的工具。`iframe` 是 "inline frame" 的缩写,它允许我们在主页面中嵌入一个独立的、可自定义的子页面。下面我们将详细讲解如何使用`iframe`在网页中嵌入其他网页的...

Global site tag (gtag.js) - Google Analytics