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-layer-iframe' + index].window

posted @ 2017-03-19 21:19  冰狼爱魔  阅读(16808)  评论(0编辑  收藏  举报