https://github.com/electron/electron/tree/main/docs/fiddles/ipc/webview-new-window 主进程监听一个特定事件did-attach-webview,该事件在一个webview被附加到主窗口mainWindow之后触发。在这个事件触发后,主进程会对新附加的webview设置一个窗口打开处理函数(通过setWindowOpenHandler方法)。 这个窗口打开处理函数...
在github上查找Issues发现,渲染进程中的webview添加事件new-window监听,捕获到webview内容打开新窗口的事件,然而并不能阻止electron打开一个新的窗口 官方文档给出的是调用 event.preventDefault() 方法,但是新版本的electron 18.1是没有办法在渲染进程中去阻止这个事件,只能放到主线程中去阻止。 letcontentTemp=null;con...
remote const win = new BrowserWindow() win.loadURL('https://github.com') 渲染进程访问 _remote_ ,主进程需配置enableRemoteModule:true 使用这种方式同样可以打开一个新的窗口,但是主进程的new-window捕捉不到。 应用new-window new-window 控制着窗口新窗口的创建,我们利用这点,可以做到很多事情;比如链接...
使用这种方式同样可以打开一个新的窗口,但是主进程的new-window捕捉不到。 应用new-window new-window控制着窗口新窗口的创建,我们利用这点,可以做到很多事情;比如链接校验、浏览器打开链接等等。默认浏览器打开链接代码如下: import{ shell }from'electron'functionopenExternal(url:string) {constHTTP_REGEXP=/^https?
* new-window : window.open调用 * background-tab: command+click * foreground-tab: 右键点击新标签打开或点击a标签target _blank打开 * / }) 注:关于disposition字段的解释,移步electron文档、electron源码、chrome 源码 扩展**new-window** 经过实验,并不是所有新窗口的建立,new-window都能捕捉到的。
let window = new Window(); window.listen(); // 设置监听事件,比如主进程与渲染进程之间的通信事件 window.createWindows({ isMainWin: true }); // 创建窗口,默认为主窗口 window.createTray(); // 创建系统托盘 } // 关闭所有窗口 app.on("window-all-closed", () => { ...
原生window.open () 允许同步打开窗口, 因此可以方便的选择是对话框还是首选项窗口。该选项也可以设置在<webview>标签上:<webview webpreferences="nativeWindowOpen=yes"></webview> BrowserWindow的创建可通过WebContents 的new-window事件进行定制 。// main process const mainWindow = new BrowserWindow({ width:...
loadUrl(url: string): void: load a new url in the window importElectronWindowfrom"@el3um4s/electron-window";letwindow:ElectronWindow;constoptions={url:"https://www.google.com",themeSource:"light",preload:"path/to/preload.js",};window=newElectronWindow();window.createWindow(options);window....
//安装模块 npm i electron-window-util //项目中使用 import Vue from 'vue' import router from './router' const electron = require('electron'); const winUtil = require('electron-window-util'); let baseUrl = electron.remote.getGlobal('baseUrl'); let win = new winUtil({ baseUrl: baseUrl...
'http://localhost:9080/#/miniWindow':`file://${__dirname}/index.html#miniWindow`// 使用hash对子页面跳转,这是vue的路由思想miniWindow=newBrowserWindow({width:600,height:400,webPreferences:{webSecurity:false},parent:mainWindow// mainWindow是主窗口})miniWindow.loadURL(modalPath)miniWindow.on('...