top.layer.open({ 怎么传数据和子页面拿数据
时间: 2024-10-13 19:10:54 浏览: 52
在JavaScript的Web应用中,当你使用第三方库如layui的`top.layer.open`方法打开一个新的弹窗层(layer),通常会通过传递一个配置对象来传递数据。这个配置对象可以包含一个名为`data`的字段,用于附加你需要传递的数据。
例如:
```javascript
let dataToPass = {
id: 123,
name: 'Example Data',
};
top.layer.open({
type: 2, // 弹出层类型,比如2表示iframe
title: '子页面',
shadeClose: true, // 是否关闭遮罩
iframe: {
url: 'childPage.html?id=' + dataToPass.id, // 子页面地址,带参数
scrollbar: false, // 是否显示滚动条
},
data: dataToPass, // 传递给子页面的数据
});
```
在这个例子中,`id`和`name`会作为查询参数附在子页面URL的末尾,子页面可以通过`window.parent.$('body').data()`或者其他方式获取到这些数据,前提是你在子页面上绑定了对应的事件监听并解析了数据。
在子页面中接收数据的方式可能会有所不同,但常见的做法是使用`parent.postMessage`或者利用`window.parent`对顶层窗口的操作,然后查找附加的数据。例如:
```javascript (子页面)
window.addEventListener('message', function(e) {
if (e.data && e.data.data) {
console.log('Received data:', e.data.data);
}
}, false);
```
这样,当顶层窗口发送消息(携带数据)时,子页面就能接收到并处理。
阅读全文