window.parent.postMessage(data);// TODO.add 怎么使用
时间: 2024-10-16 17:01:28 浏览: 31
`window.parent.postMessage(data);` 是JavaScript中的一种跨域通信技术,通常用于Web应用嵌套框架或在IFrame中传递数据。这里的 `parent` 指的是当前窗口的父窗口,`postMessage` 方法则是发送消息到另一个文档。
当你需要从一个子窗口(如iframe内的脚本)向其父窗口(通常是浏览器的顶层窗口)发送数据时,可以这样做:
1. **发送数据**:
- 定义一个包含你想发送的数据的变量 `data`(例如字符串、对象等)。
- 使用 `window.parent.postMessage()` 函数,传入数据作为第一个参数。
```javascript
window.parent.postMessage({ key: 'value', someData: 'example' }, '*');
```
这里的第二个参数通常设置为'*',表示接收者可以来自任何源,如果不指定则只允许同源通信。
2. **在父窗口接收**:
父窗口通过 `message` 事件监听器处理接收到的消息,例如:
```javascript
window.addEventListener('message', function(event) {
if (event.origin !== '*' && !event.origin.includes(location.host)) return;
console.log('Received data:', event.data);
});
```
这里检查了消息来源是否安全,并打印出接收到的数据。
阅读全文