contentwindow.postMessage
时间: 2024-01-01 11:04:04 浏览: 76
postMessage详解和demo
`contentWindow.postMessage()`是一个HTML5 API,用于在两个窗口之间安全地传递消息。它允许您向其他窗口发送数据,而不需要知道这些窗口的详细信息,只需要知道它们的引用。以下是一个使用`contentWindow.postMessage()`的示例:
```javascript
// 发送消息
const otherWindow = window.open('https://example.com');
otherWindow.postMessage('Hello from the main window!', 'https://example.com');
// 接收消息
window.addEventListener('message', event => {
if (event.origin !== 'https://example.com') return; // 验证消息来源
console.log(`Received message: ${event.data}`);
});
```
在上面的示例中,我们首先打开了一个新窗口,并将其引用存储在`otherWindow`变量中。然后,我们使用`postMessage()`方法向该窗口发送一条消息。该方法的第一个参数是要发送的数据,第二个参数是目标窗口的源。在这种情况下,我们只允许将消息发送到`https://example.com`域。
接下来,我们在主窗口中添加了一个事件监听器,以便在收到来自其他窗口的消息时进行处理。在这个监听器中,我们首先验证消息的来源是否是`https://example.com`,以确保我们只接收来自预期来源的消息。然后,我们将消息数据记录在控制台中。
阅读全文