postmessage跨域
时间: 2023-12-14 20:05:35 浏览: 75
iframe+postMessage实现跨域通信
postMessage方法可以用于实现跨域通信。它可以在不同的窗口(包括iframe窗口)之间传递数据,即使这些窗口来自不同的域名。具体来说,postMessage方法可以向目标窗口发送消息,并在目标窗口的onmessage事件中接收消息。在发送消息时,需要指定目标窗口的URL,以确保只有目标窗口可以接收到消息。在接收消息时,需要检查消息来源是否可信,以防止恶意代码的攻击。下面是一个postMessage方法的示例:
```javascript
// 发送消息
var targetWindow = window.parent; // 目标窗口为父窗口
var message = "Hello, parent window!"; // 要发送的消息
var targetOrigin = "http://parent.window.com"; // 目标窗口的URL
targetWindow.postMessage(message, targetOrigin);
// 接收消息
window.addEventListener("message", function(event) {
if (event.origin !== "http://child.window.com") return; // 检查消息来源是否可信
var message = event.data; // 接收到的消息
console.log("Received message: " + message);
});
```
阅读全文