父框架与子框架的互操作
一个页面中可能嵌入多个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
父框架与子框架的互操作相关推荐
- html 子页刷新父页面刷新,子框架页刷新父页面其它框架的办法
为了给论坛左栏加上一个刷新论坛的按钮,想了半天,嘿嘿..终于搞定了. 面以三个页面分别命名为framedemo.html,top.html,button.html为例来具体说明如何做. 其中frame ...
- 问题解决10使用带有框架的页面跳转到登录页面时,登录页面只显示在子框架中,未能铺满整个浏览器--解决方案如下:...
问题描述: 使用带有框架的页面跳转到登录页面时,登录页面只显示在子框架中,未能铺满整个浏览器,例如: 当登录信息过期时,点击左边的菜单栏会让登录页面显示在右边的框架中,而不能铺满整个浏览器 解决方案: ...
- 文档类CDocument、子框架类CFrameWnd及视图类CView的关系及如何相互调用
文档类.子框架类及视图类的关系及如何相互调用 收藏 了解文档和视图的相互作用关系是编写MFC程序的基本功.但是MFC的应用程序框架把文档和视图之间的关系封装了起来,初学的朋友往往不得要领,因此写程序往 ...
- Visual C#中父窗口和子窗口之间实现控件互操作
在.NET 1.0和1.1的版本中,我们要实现父窗口和子窗口之间的互操作,有两种简单的方法. 第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如: public static yourM ...
- 爬虫Spider 08 - chromedriver设置无界面模式 | selenium - 键盘操作 | 鼠标操作 | 切换页面 | iframe子框架 | scrapy框架
文章目录 Spider 07回顾 cookie模拟登陆 三个池子 selenium+phantomjs/chrome/firefox Spider 08 笔记 chromedriver设置无界面模式 ...
- MYSQL中的主表和父表_主表,从表,关联表,父表,子表
一.前言 在数据库设计中,Hibernate,iBatis等ORM框架的使用中经常听说主键,外键,主表,从表,关联表,父表,子表之类的术语,弄懂它们之前的区别与联系对于数据库设计和ORM框架的学习使用 ...
- mfc获取子窗口句柄_前端设计-JavaScript中父窗口与子窗口间的通信
父窗体与子窗体之间的通信 在之前文章讲解windows程序设计过程中,我们曾描述了windows程序窗口之间通信与控制实现方法与过程,如窗体之间参数传递等.本文主要从Web程序开发前端JavaScri ...
- 父组件给子组件传值方法_【Vue】小学生都能看懂的子父组件传值
Vue组件是学习Vue框架最比较难的部分,而这部分难点我认为可以分为三个部分学习,其中之一就是组件的传值. 搭建的框架目录结构 一.父传子动图效果及源码 父传子源码: 父组件: 子组件: 二.子传父动 ...
- 三大前端框架,哪个框架组件间交互像js方法传值一样简单
首先框架组件通信是为了方便组件模块之间进行数据交互的,因为框架的开发本就是组件化,模块化开发,讲一个完整的项目分割成不同的组件,view组件,功能组件等等,然后形成一个具有完整功能交互的page,前端 ...
最新文章
- hibernate和struts2实现分页功能
- socket/WebSocket/WebService/http/https概念
- php 加密cer_php 生成RSA非对称加密用的证书-cer-pfx文件
- Linux-Android 修改屏蔽长按键功能
- 微软向开发者推出区块链概念验证框架
- script 标签到底该放在哪里
- python画版图_基于mask-RCNN的版图分析,MaskRCNN,版面
- linux用shell写正则表达式,Linux命令行与Shell脚本编程大全-shell正则表达式
- 在startup中遍历程序集
- freebsd mysql tmp_FREEBSD MYSQL数据库备份
- 鞋店商城小程序开发价值
- r730服务器安装系统蓝屏6,安装系统蓝屏解决解决方法
- html5鼠标悬停下拉列表,HTML5与CSS3中鼠标悬停会有下拉列表
- linux服务器安装虚拟桌面,并可视化连接远程桌面
- pc机之间的通信和点阵汉字的字模读取与显示
- 牛客IOI周赛27-普及组
- 电子厂计算机常用英语,电子厂常用英语词汇
- Shiro教程 - 雁迟
- matlab下载实录:matlab2022a好用吗
- java集成paypal支付,含Android,服务端代码
热门文章
- java 远程 shell脚本_Java 远程调用 shell脚本
- java直线函数_java实现顺序结构线性列表的函数代码
- jquery选择器:与、或逻辑
- 百度地图的两套JavaScript API
- win10访问win7的共享文件夹
- 【quartz】执行一次功能
- android快速点击两次,如何通过在Android中快速单击两次按钮来防...
- c#连接oracle11,C#连接远程oracle11g数据库
- kafka 同步提交 异步_极限MQ (5) Kafka 消费者
- android 程序退出广播,android 利用广播实现程序的强制退出