iframe的父子窗口之间的对象相互调用基本用法_javascript技巧
程序员文章站
2022-03-28 08:20:39
...
使用iframe的时候,可能会涉及到父子窗口之间传值和方法的相互调用,之前一直有些迷糊,也没有着意去弄清楚,这两天要干活,没法子了只好把这都弄明白了。其实非常简单,就那么几个用法,几句代码而已。
子窗口中调用父窗口的js方法:
parent.changeBtnTitle('tzgg');
一个父窗口中可能会有若干个功能行为类似的子窗口,子窗口中的组件要调用相同或者类似的对象或者方法,那么就把这样的方法写在父窗口中,通过传递参数来达到不同的效果。
父窗口获得子窗口中的某个对象:
首先要获得子窗口的iframe对象,比如:
var frameName = window.frames["frameId"]
然后要获得该子窗口的document值,然后就可以调用子窗口中的对象了。在父窗口中使用时为避免反复书写,不妨写成一个方法:
getSubWindowObj = function(moduleName){
return window.frames["iframe"+moduleName].document.getElementById("moreorless"+moduleName);
}
这里只用了一个参数,只因为我的iframeId和子窗口的对象Id名字起的有规律,只需传入一个参数拼接之后就可以饿了。
同样,子页面调用父页面的元素,可以使用如下代码:
parent.window.document.getElementById('parentMenu');
//简写
parent.document.getElementById('parentMenu');
子窗口中调用父窗口的js方法:
复制代码 代码如下:
parent.changeBtnTitle('tzgg');
一个父窗口中可能会有若干个功能行为类似的子窗口,子窗口中的组件要调用相同或者类似的对象或者方法,那么就把这样的方法写在父窗口中,通过传递参数来达到不同的效果。
父窗口获得子窗口中的某个对象:
首先要获得子窗口的iframe对象,比如:
复制代码 代码如下:
var frameName = window.frames["frameId"]
然后要获得该子窗口的document值,然后就可以调用子窗口中的对象了。在父窗口中使用时为避免反复书写,不妨写成一个方法:
复制代码 代码如下:
getSubWindowObj = function(moduleName){
return window.frames["iframe"+moduleName].document.getElementById("moreorless"+moduleName);
}
这里只用了一个参数,只因为我的iframeId和子窗口的对象Id名字起的有规律,只需传入一个参数拼接之后就可以饿了。
同样,子页面调用父页面的元素,可以使用如下代码:
复制代码 代码如下:
parent.window.document.getElementById('parentMenu');
//简写
parent.document.getElementById('parentMenu');
上一篇: 浅谈CSS浮动的方法介绍
下一篇: 详解CSS 给表单必选项添加星号