首页 > 其他分享 >4、electron打开子窗口

4、electron打开子窗口

时间:2022-12-08 17:33:49浏览次数:40  
标签:remote BrowserWindow electron html 窗口 打开 mainWindow

1、安装remote模块

npm install @electron/remote --save

2、主进程index.js

 1 var electron = require('electron')
 2 
 3 var app = electron.app   //引用APP
 4 var BrowserWindow = electron.BrowserWindow;  //窗口引用
 5 var mainWindow = null;  //声明要打开的主窗口
 6 
 7 app.on('ready',()=>{
 8     mainWindow = new BrowserWindow({
 9         width:800,
10         height:800,
11         webPreferences:
12         {
13             nodeIntegration:true,
14             contextIsolation:false,
15             enableRemoteModule: true,  //允许使用remote模块
16         }
17     });
18 
19     require("@electron/remote/main").initialize();  //初始化remote模块
20     require("@electron/remote/main").enable(mainWindow.webContents);  //
21 
22     //mainWindow.loadFile('index.html');
23     mainWindow.loadFile('打开新窗口.html');
24     //mainWindow.openDevTools();
25     mainWindow.on('close',()=>{
26         mainWindow = null;   //关闭窗口释放资源
27     })
28 });
View Code

3、打开新窗口.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <title>Document</title>
 8 </head>
 9 <body>
10     <input type="button" id="btn" value="打开新窗口" />
11 
12     <script>
13         const BrowserWindow = require("@electron/remote").BrowserWindow;
14         const btn = document.querySelector("#btn");
15 
16         window.onload = function(){
17             btn.onclick = function(){
18                 newWin = new BrowserWindow({
19                     width:500,
20                     height:500
21                 });
22                 newWin.loadFile('子窗口.html');
23                 newWin.on("closed",()=>{
24                     newWin = null;
25                 })
26             }
27         }
28     </script>
29 </body>
30 </html>
View Code

4、子窗口.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <title>Document</title>
 8 </head>
 9 <body>
10     <h1>我是子窗口</h1>
11 </body>
12 </html>
View Code

5、运行效果

 

标签:remote,BrowserWindow,electron,html,窗口,打开,mainWindow
From: https://www.cnblogs.com/handsomeziff/p/16966707.html

相关文章

  • SQL 窗口函数的速查表
    SQL窗口函数的速查表,包括窗口函数的语法、窗口函数列表以及相关示例,内容适用于MySQL、Oracle、SQLServer、PostgreSQL以及SQLite等关系型数据库。窗口函数概述窗口......
  • 滑动窗口
    一、引入窗口概念的原因我们都知道TCP是每发送一个数据,都要进行一次确认应答。当上一个数据包收到了应答了,再发送下一个。这个模式就有点像我和你面对面聊天,你一句我......
  • 爬取的数据存入csv文件-用excel直接打开乱码解决方法
    如图所示:解决方法:用记事本打开另存为,编码格式为ansicsv部分源码......
  • 用xcb在linux创建一个无标题窗口
    //从我的新浪博客搬过来最近,在ubuntu系统开发一个小软件,需要创建一个无标题的窗口。我使用的是xcb库(它对Xlib进行了封装),可惜一直没有找到方便的接口。于是搜索了一番之后,......
  • 3、electron读取文本文本文件内容展示到页面
    1、项目根目录下创建一个文件文件test.txt2、index.html页面源码:<!DOCTYPEhtml><htmllang="zh-cn"><head><metacharset="utf-8"><metaname="renderer"co......
  • MFC按客户区大小获取合适的主窗口大小
    使用GetClientRect与GetWindowRect计算水平、垂直非客户区大小使用GetWindowRect获取主窗口的大小,再通过GetClientRect获取客户端大小,然后通过这两个值计算出水平、垂直......
  • CWnd直接派生的窗口下使用CToolBar笔记
    问题按msdn上的教程在CWnd派生的窗口的OnCreate下创建CToolBar,工具栏不显示。Createatoolbarresource.ConstructtheCToolBarobject.CalltheCreate(orCreateEx)fu......
  • InitInstance中创建CWnd派生的窗口对象,内存泄漏
    问题MFC程序中,在主程序类的InitInstance中创建由CWnd派生的CMyWnd窗口对象,程序关闭时,在vs的输出窗口报告有内存泄漏。分析单文档、多文档程序都是在InitInstance中new出主窗......
  • Application entry file "electron\background.js" does not exist
    背景用Vue3+Electron开发了个PDF自由合并客户端。客户端侧代码慢慢膨胀,于是想将默认的路径src/background.js调整到electron/background.js。于是修改了:vue.c......
  • 如何使用命令行(cmd窗口等)?
    每次查每次忘,自己写一个常用的供查询,希望哪天能成为我的本能。cd文件名:进入下一级文件cd..:返回上一文件夹......