## [**window-open**](https://electronjs.org/docs/api/window-open)
>弹出子窗口
渲染主窗口index.html
```
....
<button onclick="openNewWindow()">弹出窗口</button>
<button onclick="closeWindow()">关闭窗口</button>
<script src="renderer/index.js"></script>
....
```
index.js
```
const wb=document.querySelect("#wb");
let subwin;
function openNewWindow(){
subwin=window.open("popup_page.html","popup");
}
//message参数接受子窗口的消息
window.addEventListener("message",(msg)=>{
console.log("接受到的消息",msg);
})
function closeWindow(){
subwin.close();
}
```
popup_page.html
```
....
<button onclick="sendMessageTopParent()">点击传递消息</button>
<script>
//子窗口与父窗口之间的消息传递
function sendMessageTopParent(){
window.opener.postMessage({
type:1,
message:"这是来自子窗口的消息"
});
}
</script>
....
```
## [**BrowserWindowProProxy**](https://electronjs.org/docs/api/browser-window-proxy)
>操作子窗口
- npm
- 基础
- Api
- 安装
- node_modules本地安装与全局安装
- Inspector
- 模块
- hello world
- 使用nodejs开发桌面客户端应用
- Electron
- api
- 使用 Node.js 的 API
- 事件
- 安装
- 调试
- 读取本地文件
- 调用Html5的拖放api
- 官方示例下载
- WebView内嵌窗口
- window.open弹出子窗口及其操作
- BrowserWindow渲染主窗口
- 主进程与渲染进程的通信
- 菜单
- 网络
- 与react结合
- 打包
- 前言
- 对比
- electron-forge
- 打包工具一:electron-packager
- 打包工具二:electron-builder
- Boilerplates样板工程
- 通用配置文档
- NW.js
- 阿斯达岁的
- npm install、npm install --save与npm install --save-dev区别