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

1、父页面访问子页面

  说明实例,index.aspx为父页面,index2.aspx为子页面并定义了函数save(),index.aspx如下:

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

 1.1 window.frames

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

    a、索引

    b、名称

    c、id

  通过索引或名称,ie7、ie8、ie11、chrome表现相同,如:window.frames[0]或者window.frames['myframe']

  通过id,ie(包括7、8、11)与chrome存在差异:

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

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

 1.2 iframe.contentWindow

  此为通用方式:document.getElementById('assetReportIframe').contentWindow.save()

2、子页面访问父页面

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

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

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

window.open()打开的页面也可以与父页面互操作,另外,注意:

  1、以上所有操作须在同一域中,不同域之间的消息传递可是使用XDM,详见《javascript高级程序设计》

   2、在ie7、ie8、ie11、chrome中,iframe定义的格式为<iframe></iframe>,而不能使用<iframe />,后一种格式虽然浏览器能够识别,但会导致浏览器忽略该iframe之后script标签,即iframe之后的js不会执行

转载于:https://www.cnblogs.com/MattCheng/p/5069713.html

父框架与子框架的互操作相关推荐

  1. html 子页刷新父页面刷新,子框架页刷新父页面其它框架的办法

    为了给论坛左栏加上一个刷新论坛的按钮,想了半天,嘿嘿..终于搞定了. 面以三个页面分别命名为framedemo.html,top.html,button.html为例来具体说明如何做. 其中frame ...

  2. 问题解决10使用带有框架的页面跳转到登录页面时,登录页面只显示在子框架中,未能铺满整个浏览器--解决方案如下:...

    问题描述: 使用带有框架的页面跳转到登录页面时,登录页面只显示在子框架中,未能铺满整个浏览器,例如: 当登录信息过期时,点击左边的菜单栏会让登录页面显示在右边的框架中,而不能铺满整个浏览器 解决方案: ...

  3. 文档类CDocument、子框架类CFrameWnd及视图类CView的关系及如何相互调用

    文档类.子框架类及视图类的关系及如何相互调用 收藏 了解文档和视图的相互作用关系是编写MFC程序的基本功.但是MFC的应用程序框架把文档和视图之间的关系封装了起来,初学的朋友往往不得要领,因此写程序往 ...

  4. Visual C#中父窗口和子窗口之间实现控件互操作

    在.NET 1.0和1.1的版本中,我们要实现父窗口和子窗口之间的互操作,有两种简单的方法. 第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如: public static yourM ...

  5. 爬虫Spider 08 - chromedriver设置无界面模式 | selenium - 键盘操作 | 鼠标操作 | 切换页面 | iframe子框架 | scrapy框架

    文章目录 Spider 07回顾 cookie模拟登陆 三个池子 selenium+phantomjs/chrome/firefox Spider 08 笔记 chromedriver设置无界面模式 ...

  6. MYSQL中的主表和父表_主表,从表,关联表,父表,子表

    一.前言 在数据库设计中,Hibernate,iBatis等ORM框架的使用中经常听说主键,外键,主表,从表,关联表,父表,子表之类的术语,弄懂它们之前的区别与联系对于数据库设计和ORM框架的学习使用 ...

  7. mfc获取子窗口句柄_前端设计-JavaScript中父窗口与子窗口间的通信

    父窗体与子窗体之间的通信 在之前文章讲解windows程序设计过程中,我们曾描述了windows程序窗口之间通信与控制实现方法与过程,如窗体之间参数传递等.本文主要从Web程序开发前端JavaScri ...

  8. 父组件给子组件传值方法_【Vue】小学生都能看懂的子父组件传值

    Vue组件是学习Vue框架最比较难的部分,而这部分难点我认为可以分为三个部分学习,其中之一就是组件的传值. 搭建的框架目录结构 一.父传子动图效果及源码 父传子源码: 父组件: 子组件: 二.子传父动 ...

  9. 三大前端框架,哪个框架组件间交互像js方法传值一样简单

    首先框架组件通信是为了方便组件模块之间进行数据交互的,因为框架的开发本就是组件化,模块化开发,讲一个完整的项目分割成不同的组件,view组件,功能组件等等,然后形成一个具有完整功能交互的page,前端 ...

最新文章

  1. hibernate和struts2实现分页功能
  2. socket/WebSocket/WebService/http/https概念
  3. php 加密cer_php 生成RSA非对称加密用的证书-cer-pfx文件
  4. Linux-Android 修改屏蔽长按键功能
  5. 微软向开发者推出区块链概念验证框架
  6. script 标签到底该放在哪里
  7. python画版图_基于mask-RCNN的版图分析,MaskRCNN,版面
  8. linux用shell写正则表达式,Linux命令行与Shell脚本编程大全-shell正则表达式
  9. 在startup中遍历程序集
  10. freebsd mysql tmp_FREEBSD MYSQL数据库备份
  11. 鞋店商城小程序开发价值
  12. r730服务器安装系统蓝屏6,安装系统蓝屏解决解决方法
  13. html5鼠标悬停下拉列表,HTML5与CSS3中鼠标悬停会有下拉列表
  14. linux服务器安装虚拟桌面,并可视化连接远程桌面
  15. pc机之间的通信和点阵汉字的字模读取与显示
  16. 牛客IOI周赛27-普及组
  17. 电子厂计算机常用英语,电子厂常用英语词汇
  18. Shiro教程 - 雁迟
  19. matlab下载实录:matlab2022a好用吗
  20. java集成paypal支付,含Android,服务端代码

热门文章

  1. java 远程 shell脚本_Java 远程调用 shell脚本
  2. java直线函数_java实现顺序结构线性列表的函数代码
  3. jquery选择器:与、或逻辑
  4. 百度地图的两套JavaScript API
  5. win10访问win7的共享文件夹
  6. 【quartz】执行一次功能
  7. android快速点击两次,如何通过在Android中快速单击两次按钮来防...
  8. c#连接oracle11,C#连接远程oracle11g数据库
  9. kafka 同步提交 异步_极限MQ (5) Kafka 消费者
  10. android 程序退出广播,android 利用广播实现程序的强制退出