postmessage用法
时间: 2023-11-04 21:07:42 浏览: 108
postMessage()是HTML5中新增的API,用于在不同窗口或iframe之间进行通信。它可以将数据从一个窗口传递到另一个窗口,即使这些窗口属于不同的域也可以。
postMessage()方法接受两个参数:要发送的数据和接收方窗口的来源。例如:
```
window.postMessage('Hello world!', 'https://example.com');
```
这将发送一个字符串“Hello world!”到来源为“https://example.com”的窗口。
在接收方窗口中,我们可以通过添加一个事件监听器来获取数据:
```
window.addEventListener('message', function(event) {
console.log(event.data); // 'Hello world!'
});
```
在这里,我们添加了一个事件监听器来监听message事件。当接收到消息时,事件对象的data属性将包含发送的数据。
此外,我们还可以通过第二个参数来限制只接收来自特定窗口的消息:
```
window.addEventListener('message', function(event) {
if (event.origin !== 'https://example.com') {
return;
}
console.log(event.data);
});
```
在这个示例中,我们将仅接收来自“https://example.com”的消息。如果消息来自其他窗口,则什么也不做。这可以确保我们不会受到来自未知来源的恶意消息。
阅读全文