window.parent.postMessage()怎么使用
时间: 2024-10-15 15:05:34 浏览: 243
`window.parent.postMessage()`是HTML5中的一个API,主要用于跨窗口通信,尤其是从嵌套框架(如iframe)或弹出窗口发送消息到顶层窗口(即包含它们的页面)。这个方法常用于父子级页面间的通信,避免了通过location.hash、sessionStorage等传统方法的限制。
使用步骤如下:
1. **触发发送**:
在想要发送消息的窗口(通常是嵌套的iframe或弹窗),你可以这样做:
```javascript
window.parent.postMessage(messageData, targetOrigin);
```
`messageData`是你想传递的对象,`targetOrigin`是你预期接收消息的目标窗口的协议、域名和端口组合,比如 `'http://example.com'`。
2. **接收监听**:
在顶层窗口(父级页面),你需要注册一个事件处理器来接收消息:
```javascript
window.addEventListener('message', function(event) {
if (event.origin === targetOrigin && event.data === yourExpectedMessage) {
// 处理收到的消息
}
}, false);
```
这里检查`event.origin`是为了确保只有来自指定来源的消息才会被接收。
3. **安全性注意**:
考虑到安全因素,你应该只信任来自已知源头的postMessage。如果不明确目标来源,可能会遭受恶意攻击。
阅读全文