window.postMessage 是 HTML5 中提供的一种在不同源的窗口之间进行安全通信的方法。
它允许一个窗口(例如,iframe 中的页面、通过 window.open 打开的新窗口等)向另一个窗口发送消息,同时可以指定接收消息的窗口的源,以确保消息只被允许的接收方获取。
1. 发送方
window.postMessage(message, targetOrigin);
message:是要发送的数据,可以是字符串、对象等
targetOrigin:目标窗口的源,如:http://example.com。可以是确切的源,也可以是`\*` 表示向任何源发送。
// 发送消息
window.postMessage("你好啊,yqocder", "http://localhost/a.html");
2. 接受方
// 监听 message 事件接收消息
window.addEventListener("message", function (event) {
// 确保消息来自可信的源
if (event.origin !== expectedOrigin) {
return;
}
// 处理接收到的消息
var data = event.data;
// 进行相应的操作
});