window.parent.postMessage(data);// TODO.add
时间: 2024-10-15 09:05:40 浏览: 28
`window.parent.postMessage(data);` 这行JavaScript代码用于在一个网页窗口(称为子窗口)向另一个嵌套在其顶层的窗口(称为父窗口)发送消息。`data`是要发送的数据,它可以是任何JSON兼容的数据类型,如字符串、对象或数组。
这个功能常用于浏览器的同源策略限制下,允许安全地从一个页面向另一个页面传递信息,特别是跨域通信。比如,当一个iframe嵌入的页面想要通知其包含它的页面时,它会使用`postMessage`。
在实际场景中,这行代码可能会出现在这样的情况:
```javascript
// 子窗口 (iframe)
window.addEventListener("DOMContentLoaded", function() {
// 当某个操作完成时,向父窗口发送数据
const dataToSend = { action: "update", payload: "some data" };
window.parent.postMessage(dataToSend, "*");
});
// 父窗口 (parent document)
window.addEventListener("message", function(event) {
if (event.origin !== "http://yourdomain.com") return; // 验证来源防止恶意攻击
console.log("Received message:", event.data);
// 在这里处理接收到的数据
});
```
在这个例子中,子窗口在DOMContentLoaded事件触发后发送一个携带特定数据的消息,而父窗口监听`message`事件并处理来自子窗口的消息。
阅读全文