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

2018-02-05 10:44:59来源:oschina作者:天佑我儿人点击

分享


对于frameset框架中,子类的iframe会遇到,需要调用父类界面的数据的问题,这时候我们就需要解决这个问题了,通过窗口的frames数组,获取的都是window对象,不是document对象,需要获取到document对象后,再获取里面的元素。



1、父类调用子frame

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


frames[0].a;
frames[0].refresh(); //进行刷新操作
alert(frames[0].location.href);
#这个frames[] 获取的是frameset的对象的window,但是不是document对象,需要获取到docment对象,然后获取里面的元素和方法
//通过js原生语法获取
frames[0].document.getElementById("kaisu")
//通过jquery的方式获取子类画面的元素
$(frames[0].document).find("#kaisu")
#第二种写法
$("#kaisu",frames[0].document).val(tradeCode);

这里写图片描述


2、子类调用父类frame
//获取到父类的window对象
window.parent.a;
window.parent.refresh();
//判断是否是顶层的frame,如果不是就获取父类的frame,获取里面元素
if(self !=window.top){
$(window.parent.document).find("#btnPrint").show();
$(window.parent.document).find("#btnWord").show();
}
//子类获取父类节点的jquery方法
$("#kykShoInNameKbnHid", window.parent.document).val()
3、兄弟框架之间的调用

可以通过它们的父框架来相互调用,可以这样做


//通过共同的父类来获取到兄弟节点的window对象
self.parent.frames['child1'];
self.parent.frames['child2'];
4、多层嵌套调用

一般多层调用的这种方式也不多,不建议使用


//调用第一层 frame里面的 第二层 frame
window.frames[0].frames[2];
window.frames['child_1'].frames['sub_child_3'];
5、顶层判断

首先需要判断是否为顶层框架,也就是根(是不是父类窗口的情况),可以这样来做:


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

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台