本文将学习一下 Electron 中 Window.open 子窗口与父窗口之间是如何通信的。
window.opener.postMessage 子窗口向父窗口传递消息
window.opener.postMessage(message,targetOrigin),是将消息发送给指定来源的父窗口,如果未指定来源则发送给所有窗口。
- message : 传递的消息,是
String类型的值 - targetOrigin : 指定发送的窗口
在传递消息时,你需要在子窗口的页面中设置一些内容,所以我们不能使用远程的页面,而需要自己建立一个。在项目根目录下,建立一个popup_page.html文件。 代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h2>我是弹出的子窗口</h2>
<button id="popbtn">向父窗口传递信息</button>
<script>
var popbtn = this.document.querySelector("#popbtn");
popbtn.onclick = function (e) {
window.opener.postMessage("我是子窗口传递过来的信息");
}
</script>
</body>
</html>
这样就可以从子窗口向父窗口发送信息了。

这个还是比较重要的,在实际开发中经常用的父子之间信息传递,希望小伙伴多多练习一下。