layui父页面获取子页面的窗口对象

本文介绍了三种在父页面通过layer.open方法调用子页面JavaScript方法的方式:1. 获取iframe的ID并调用方法;2. 通过窗口对象直接调用;3. 使用layer提供的getChildFrame方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在父页面的layer.open方法中的按钮点击回调方法中,使用以下几种方法,可以调用子页面中的js方法。
方法一、
//获得iframe窗口的id至,其中下面的‘customerServiceOpen’为layer.open方法中的id值
var frameId=document.getElementById(‘customerServiceOpen’).getElementsByTagName(“iframe”)[0].id;
//获取iframe窗口对象并调用a方法
$(‘#’+frameId)[0].contentWindow.a();
方法二、
//得到iframe页的窗口对象
var iframeWin = window[layero.find(‘iframe’)[0][‘name’]];
调用子页面a方法
iframeWin.a();
方法三、
var body = layer.getChildFrame(‘body’, index);
var iframeWin = window[layero.find(‘iframe’)[0][‘name’]]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();

layui中,父窗口可以通过窗口iframe元素来获取窗口的json数据。你可以使用以下方法: 1. 在父窗口中,使用layuilayer.open()方法打开窗口,并将窗口的URL指定为一个页面,该页面返回要传递给父窗口的json数据。 2.窗口页面中,通过父窗口的window对象layer.getFrameIndex()方法获取当前窗口的索引。 3. 使用layuilayer.getChildFrame()方法获取窗口iframe元素。 4. 使用iframe元素的contentWindow属性获取窗口的window对象。 5. 在父窗口中,通过窗口的window对象获取窗口中的json数据。 下面是一个示例代码: 在父窗口中: ```javascript // 打开窗口 layer.open({ type: 2, title: '窗口', content: 'child.html', area: ['500px', '300px'], success: function(layero, index){ // 获取窗口的索引 var childIndex = layer.getFrameIndex(layero.find('iframe')[0]); // 获取窗口iframe元素 var iframe = layer.getChildFrame('body', childIndex); // 获取窗口的window对象 var childWindow = iframe[0].contentWindow; // 在父窗口获取窗口的json数据 var jsonData = childWindow.getJsonData(); console.log(jsonData); } }); ``` 在窗口的child.html页面中: ```javascript // 窗口中的代码 function getJsonData() { // 返回要传递给父窗口的json数据 return { name: 'John', age: 25, city: 'New York' }; } ``` 请注意,这只是一个简单的示例,你可以根据自己的需求进行相应的修改。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值