天天看点

使用parent.layer.open()打开页面如何调用子页面的方法

我的问题:

A 页面 包含iframeB页面,从iframe B页面使用parent.layer.open 打开一个iframe弹层C页面,我知道这时弹层是在A页面打开的,现在我想在layer打开的iframeC页面中调用B页面的方法该如何做?

官网上使用layer.open打开页面,调用子页面的方法是这样的

layer.open({

type: 2,

content: ‘test/iframe.html’,

btn: [“按钮1”, “按钮2”],

btn1: function(layero, index){

var iframeWin = window[layero.find(‘iframe’)[0][‘name’]]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.test.method1();

},

btn2: function(layero, index){

var iframeWin = window[layero.find(‘iframe’)[0][‘name’]]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.test.method2();

},

}

});

我使用parent.layer.open()打开子页面

var layerIndex=parent.layer.open({

type: 2,

content: ‘test/iframe.html’,

btn: [“按钮1”, “按钮2”],

btn1: function(layero, index){

var iframeWin = parent.window[‘layui-layer-iframe’ + layerIndex]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.test.method1();

},

btn2: function(layero, index){

var iframeWin = window[layero.find(‘iframe’)[0][‘name’]]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.test.method2();

},

}

});

子页面中这样写

var test = {

method1: function (index) {

console.log(“方法一的内容”)

},

method2: function (index) {

console.log(“方法二的内容”)

}

}

好记性不如烂笔头,这里记录一下。亲测有用

继续阅读