frameset,iframe框架之间如何互相调用变量、函数

以往一直在编写的都是前台的UI,不多使用到frameset、iframe,对其了解也是十分有限,只是知道其能够为其当前页面引入html文件成为当前页的一部分,可是这两天在作后台UI界面的时候,发现这样的框架也是有至关多知识点在里面的。那框架是啥?能够这样说:经过使用框架,你能够在同一个浏览器窗口中显示不止一个页面。每份HTML文档称为一个框架,而且每一个框架都独立于其余的框架。那么关于框架,有几个方面是须要我了解的:html

(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 对象。spa

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

假如我要刷新本页面中第一个框架的页面,能够怎么作:orm

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

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

结合上面说的得到页面上的frame,那么调用子框架的变量或是函数能够这样来:对象

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

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

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

对于子框架调用父框架的这种状况下,window有个属性叫parent,用来调用上层框架的,因此能够这样来:

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

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

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

 能够经过它们的父框架来相互调用,能够这样作

self.parent.frames['child1'];
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,它表示对顶层框架的引用,这能够用来判断一个框架自身是否为顶层框架*/

基本关于frameset和iframe之间的互相调用知识点就这些,这个嘛,忽略,http://t.cn/RUbL4rP

相关文章
相关标签/搜索