【发布时间】:2019-07-28 03:56:46
【问题描述】:
我想要一个单独的 Electron 窗口,分成两部分:
- 左边部分是
BrowserWindow正在加载https://gmail.com 右边部分是另一个
BrowserWindow也在加载Gmail,但我希望这两个浏览器是“独立的”,即cookies/LocalStorage/等。应该是独立的(就像我们有一个普通的 Chrome 窗口和一个隐身窗口);因此允许在左侧连接一个 Gmail 帐户/在右侧连接另一个帐户单个 Electron 窗口顶部的一些其他 UI 按钮。
此代码有效,但它创建了 2 个窗口而不是 1 个:
const { app, BrowserWindow } = require('electron')
const path = require('path')
app.once('ready', () => {
let win = new BrowserWindow({show: false})
win.once('show', () => { win.webContents.executeJavaScript('validateFlights()') })
win.loadURL('https://www.gmail.com')
win.show()
let win2 = new BrowserWindow({show: false})
win2.once('show', () => { win.webContents.executeJavaScript('validateFlights()') })
win2.loadURL('https://www.gmail.com')
win2.show()
})
如何将它们放在一个窗口中?
【问题讨论】:
-
为什么不使用一个 BrowserWindow 和两个 iframe?
-
@Kornflexx 我认为 gmail 可能正在提供破坏帧的代码。如果您能找到解决该问题的方法(可能在电子中可能),那么这是一个有效的解决方案。
-
可能是不可能的,间接地你想在相同的代码中运行两个应用程序。每个应用都有自己的实例
-
@Kornflexx 实际上它更复杂,因为我希望在重新启动应用程序后,左侧浏览器保持连接到帐户/右侧浏览器保持连接到另一个帐户(每个都有其 cookie) .
-
另一个例子:你想用 Electron 创建一个“浏览器”(我们已经运行了一整圈,没错 ;)),比如 github.com/wexond/wexond:我们需要能够显示顶部的 UI 按钮(选择选项卡),以及同一窗口中的实际浏览器区域。
标签: javascript google-chrome browser electron