工作中很少使用到frameset,对其了解也是十分有限,这里在网上找了点资料,摘抄了部分内容。

(1)获得html页面上的frame

  window.frames可以获得本页面上所有frame集合,用法与document.forms,document.imgs的用法相似,这是这里用的是window对象,获取某个框架可以这样做window.frames[0]、window.frames['frameName']、frames['frameName']、frames[0]、self.frames[0],此处self与window等价,相当于本页面的window对象。

这里也还要再看两个属性,contentWindow、contentDocument两个属性,也是可以用来获取子窗口,框架的window对象的。

contentWindow 兼容各个浏览器,可取得子窗口的 window 对象。

contentDocument Firefox 支持,> ie8 的ie支持。可取得子窗口的 document 对象。

假如我要刷新本页面中第一个框架的页面,可以怎么做:

window.frames[0].contentWindow.location.reload();

(2)父框架调用子框架的变量或函数

结合上面说的获得页面上的frame,那么调用子框架的变量或是函数可以这样来:

frames[0].a;
frames[0].refresh();
alert(frames[0].location.href);

这是调用第一个框架里面的a变量和refresh函数。

(3)子框架调用父框架的变量或函数

对于子框架调用父框架的这种情况下,window有个属性叫parent,用来调用上层框架的,所以可以这样来:

window.parent.a;
window.parent.refresh();

这是调用子框架调用父框架的a变量和refresh函数。

(4)兄弟框架之间的调用

可以通过它们的父框架来相互调用,可以这样做。这样相当于获取了获取到了的window对象,或者是获取了的window对象。

self.parent.frames['child1'];    //这里相当于获取了child1的window对象了,就可以调用child1里面window的方法了,如js方法
self.parent.frames['child2'];

(5)多层框架的调用

window.frames[0].frames[2];
window.frames['child_1'].frames['sub_child_3'];

(6)顶层框架

首先需要判断是否为顶层框架,也就是根,可以这样来做:

if(self==window.top){
//....
}
/*window的另外一个属性top,它表示对顶层框架的引用,这可以用来判断一个框架自身是否为顶层框架*/                        
 

。。。。。。。。。。。。。以上内容均摘抄自http://www.cnblogs.com/wuxiaobin/p/4812732.html 。。。。。。。。。。。。
 
 

frameset的各个frame之间互相访问的方法的更多相关文章

  1. 【JavaScript】frame跨域访问元素

    什么是跨frame访问元素呢?比如main.html中有如下代码: <frameset cols="50%,*"> <frame src="frame1 ...

  2. frame与frame之间怎么用jquery传值

    frame与frame之间如何用jquery传值 使用jquery操作iframe 1. 内容里有两个ifame <iframe id="leftiframe"...< ...

  3. HttpClient_001_初步实现项目01的servlet,与项目02的servlet,之间数据访问

    HttpClient_001_初步实现项目01的servlet,与项目02的servlet,之间数据访问 代码下载地址: http://download.csdn.net/detail/poiuy19 ...

  4. 内网DMZ外网之间的访问规则

    当规划一个拥有DMZ的网络时候,我们可以明确各个网络之间的访问关系,可以确定以下六条访问控制策略. 1.内网可以访问外网 内网的用户显然需要自由地访问外网.在这一策略中,防火墙需要进行源地址转换. 2 ...

  5. 多节点通过PPP连接,节点/用户/客户机之间互相访问ping

    多节点通过PPP连接,节点/用户/客户机之间互相访问ping 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-04-14. 有A, B, C 三台客户机,通过ppp虚拟拨号连接到服务 ...

  6. 实现liunx之间无密码访问——ssh密匙

    环境描述 两台linux服务器 172.16.1.22[client],172.16.1.33[server],想要实现client服务器ssh无密码访问server服务器. 使用技术 linux 的 ...

  7. Java 面向对象异常处理,finally,覆盖时异常特点,package,import,包之间的访问(10)

    Java 面向对象异常处理, finally:final 关键字的用法参考http://www.cnblogs.com/itcqx/p/5541659.html 覆盖时异常特点,package,imp ...

  8. [Unity WWW] 跨域访问解决方法

    什么是跨域访问 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation).信任关系是连接在域与域之间的桥梁.当一个域与其他域建立了信任 ...

  9. 怎么看网站是否开启CDN加速?测试网站全国访问速度方法详解

    注意域名,动静分离的网站,只对静态文件的域名做了cdn 怎么看网站有没开启CDN? 要看一个网站是否开启CDN,方法很简单,只要在不同的地区ping网址就可以,比如在山东济南ping www.jb51 ...

随机推荐

  1. Sql server 索引详解

    参考资料:老K写的,http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html SQL索引在数据库优化中占有一个非常大的比例, 一个好的 ...

  2. 【Python】控制鼠标点击

    from pymouse import PyMouse m = PyMouse() a = m.position() #获取当前坐标的位置 print(a) m.move(50, 500) #鼠标移动 ...

  3. LeetCode题解之Leaf-Similar Trees

    1.题目描述 2.问题分析 将叶子节点的值放入vector,然后比较. 3.代码 bool leafSimilar(TreeNode* root1, TreeNode* root2) { vector ...

  4. C#多线程的用法9-Semaphore

    Semaphore:可理解为允许线程执行信号的池子,池子中放入多少个信号就允许多少线程同时执行. private static void MultiThreadSynergicWithSemaphor ...

  5. SQLSERVER文件组误脱机后如何联机

    场景:在学习文件组的恢复过程中,通过 ALTER DATABASE TEST MODIFY FILE(NAME = SUBF,OFFLINE) 把文件组给弄脱机了.这时却发现脱机之前忘记备份了. 这时 ...

  6. Git钩子详解

    钩子 Git钩子是在Git仓库中特定事件发生时自动运行的脚本.可以定制一些钩子,这些钩子可以在特定的情况下被执行,分为Client端的钩子和Server端的钩子.Client端钩子被operation ...

  7. RHEL6.5安装multipath多路径软件

    一.划zone(以博科光纤交换机为例) ①查看光纤交换机端口状态 RAC_SW_01:admin> switchshow Index Port Address Media Speed State ...

  8. November 13th, 2017 Week 46th Monday

    Don't undermine your worth by comparing yourself with others. 别拿自己和他人比较,这只会降低你原有的价值. Honestly, I don ...

  9. Java多线程学习笔记之三内存屏障与Java内存模型

    基本内存屏障 处理器支持那种内存重排序,就会提供能够禁止相应内存重排序的的指令,这些指令就被成为基本内存屏障:StroeLoad屏障.StroeLoad屏障.LoadLoad屏障.LoadStore屏 ...

  10. 【SDOI2011 第2轮 DAY1】消防 -[树的直径+树链剖分][解题报告]

    [SDOI2011 第2轮 DAY1]消防 题面: SDOI2011 第2轮 DAY1]消防 时间限制 : 20000 MS 空间限制 : 565536 KB 问题描述 时限\(2s\) 某个国家有\ ...