父框架与子框架的互操作

一个页面中可能嵌入多个iframe,该页面与iframe中的子页面的互操作方式如下:

1、父页面访问子页面

  1.1 window对象包含属性frames,其为当前页面中子框架window对象的集合,因此可以通过该属性访问子框架window对象。属性frames的访问方式有两种:

    a、索引

    b、名称

  例如,父页面index.aspx: 

    <div>
        <iframe id="assetReportIframe" name="myframe" src="index2.aspx"></iframe>
    </div>

  子页面index2.aspx定义了函数save(),则从index.aspx中调用该函数的方法为:window.frames[0]或者window.frames[‘myframe‘],这两种方式适用于ie7、ie8、ie11、chrome;

  1.2 属性frames也可以通过id进行索引,但ie(包括7、8、11)与chrome存在差异,其中,

    ie中,window.frames[‘assetReportIframe‘]返回的是该框架的window对象

    chrome中,window.frames[‘assetReportIframe‘]返回的是该框架元素的对象

    因此,这种方式并不合理,通过id的方式访问iframe中window对象的通用方式是先获取iframe对象,之后通过该对象获取其中的页面的window对象,即:

      document.getElementById(‘assetReportIframe‘).contentWindow.save()

2、子页面访问父页面

  子页面访问父页面方式比较简单,即在子页面调用window.top或window.parent

3、子页面与父页面的js执行均调用同一线程,即仍为单线程

  测试方法:利用同步ajax会阻断线程执行的特点,分别在父页面与子页面调用ajax和alert函数,结果为子页面js会被父页面阻断

window.open()打开的页面也可以与父页面互操作,待总结...

时间: 2024-07-31 00:28:15

父框架与子框架的互操作的相关文章

父框架调用子框架中内容的问题记录

有一个项目需要用框架来完成,在编码中发现父框架调用子框架中内容的实现有兼容性问题,特此记录下来! <iframe id="preview" name="preview" src="bill.php?page=preview" frameborder="0" width="100%"></iframe> 这个是我的框架,我准备操作框架中的DOM.所以我使用了, container= p

解决子框架嵌套的问题

如果session过期,会出现登录页面嵌套进子框架的我问题,这时候只需要在登录页写入下列代码即可解决这一问题. <script type="text/javascript"> //解决子框架嵌套的问题 if(window != window.parent){ window.parent.location.reload(true); } </script>

C#中父窗口和子窗口之间控件互操作实例

本文实例讲述了C#中父窗口和子窗口之间控件互操作的方法.分享给大家供大家参考.具体分析如下: 很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如: 代码如下: public static yourMainWindow pCurrentWin = null

selenium - iframe子框架

特点 网页中嵌套了网页,先切换到iframe子框架,然后再执行其他操作 方法 browser.switch_to.iframe(iframe_element) 示例 - 登录qq邮箱 from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://mail.qq.com/') # 切换到iframe子框架 login_frame = driver.find_element_by_

16、Cocos2dx 3.0游戏开发找小三之Node:父节点、子节点、傻傻分不清楚

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30476133 Cocos2d-x 采用了场景.层.精灵的层次结构来组织游戏元素, 与此同时,这个层次结构还对应了游戏的渲染层次,因此游戏元素可以组织成树形结构,称作渲染树. Cocos2d-x 把渲染树上的每一个游戏元素抽象为一个节点,即 Node. 一切游戏元素都继承自 Node,因此它们 都具有 Node 所提供的特性. Node 定义了一个可绘制

Iframe父页面与子页面之间的相互调用

iframe元素就是文档中的文档. window对象: 浏览器会在其打开一个HTML文档时创建一个对应的window对象.但是,如果一个文档定义了一个或者多个框架(即:包含一个或者多个frame或者iframe标签),浏览器就会为原始文档创建一个window对象,再为每个iframe创建额外的window对象,这些额外的window对象是原始窗口的子窗口. contentWindow: 是指指定的iframe或者iframe所在的window对象 Demo1 父页面fu.html: <!DOCT

Iframe父页面与子页面之间的调用

专业词语解释如下:     Iframe:iframe元素是文档中的文档.     window对象: 浏览器会在其打开一个HTML文档时创建一个对应的window对象.但是,如果一个文档定义了一个或者多个框架(即:包含一个或者多个frame或者iframe标签),浏览器就会为原始文档创建一个window对象,再为每个iframe创建额外的window对象,这些额外的window对象是原始窗口的子窗口. contentWindow: 是指指定的iframe或者iframe所在的window对象.

父页面与子页面间相互传值

父页面与子页面间相互传值 1.子页面又父页面通过window.open弹出 子页面要向父页面传值,只要在document前面加window.opener即可.如:父页面: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

使用iframe父页面调用子页面和子页面调用父页面的元素与方法

在实际的项目开发中,iframe框架经常使用,主要用于引入其他的页面.下面主要介绍一下使用iframe引入其他页面后,父页面如何调用子页面的方法和元素以及子页面如何调用父页面的方法和元素. 1.父页面获取子页面的元素 //jquery方式 $("#iframeId").contents().find("#child1"); //js方式 window.frames["iframName"].document.getElementById(&quo