postMessage是一个用于跨窗口通信的方法,它有两种使用方式:
1. 发送消息给指定窗口:可以使用postMessage方法将消息发送给指定的窗口,语法如下:
```javascript
targetWindow.postMessage(message, targetOrigin);
```
其中,targetWindow是要接收消息的窗口对象,可以通过window.open()或者window.frames[index]获取;message是要发送的消息,可以是字符串、数字、对象等;targetOrigin是一个字符串,表示目标窗口的源,用于过滤消息,可选参数。
2. 接收消息:在接收消息的窗口中,可以通过添加一个message事件监听器来接收消息,语法如下:
```javascript
window.addEventListener("message", handleMessage);
```
其中,"message"是事件类型,表示接收到新消息时触发;handleMessage是一个回调函数,用于处理接收到的消息。在回调函数中,可以通过event.data获取传递过来的消息内容。
这两种方式可以配合使用,实现跨窗口的双向通信。