获取layer.open弹出层的返回值
Layer:如何调用layer.open打开的的iframe窗口中的JS?
layer.open({
type: 2,
content: ‘test/iframe.html’,
success: function(layero, index){
var body = layer.getChildFrame(‘body’, index);
var iframeWin = window[layero.find(‘iframe’)[0][‘name’]]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
console.log(body.html()) //得到iframe页的body内容
body.find(‘input’).val(‘Hi,我是从父页来的’)
}
});
如上面的代码所示,也就是可以使用iframeWin.method(); 来执行父页面上的JS方法,
iframeWin 是通过window[layero.find(‘iframe’)[0][‘name’]]来获取,其中要用到layero这个变量,它是通过success这个function传入,一直到这里都没有问题
但是问题来了,如果我想在页面的其它地方来用执行父页面或其它通过layer.open方法找开的子页面,又该怎么做呢?(毕竟其它地方至少是找不到layero这个变量的)
解决办法:
parent.window[‘layui-layer1’ + index].window
或者
parent.window[‘layui-layer-iframe’ + index].window