我试图在同一个窗口中并排放置两个 BrowserView
。此代码运行:
const { app, BrowserWindow, BrowserView } = require('electron');
function createWindow() {
browserWindow = new BrowserWindow({ width: 1200, height: 600 });
let browserView1 = new BrowserView({ webPreferences: { nodeIntegration: false }});
let browserView2 = new BrowserView({ webPreferences: { nodeIntegration: false }});
browserWindow.setBrowserView(browserView1);
browserWindow.setBrowserView(browserView2);
browserView1.setBounds({ x: 0, y: 0, width: 600, height: 600 });
browserView2.setBounds({ x: 600, y: 0, width: 600, height: 600 });
browserView1.webContents.loadURL('https://www.example.com');
browserView2.webContents.loadURL('https://www.google.com');
browserWindow.on('closed', function () { browserWindow = null; });
}
app.on('ready', createWindow);
但只显示第二个BrowserView
。
如何同时显示?
最佳答案
BrowserView
目前是 Electron 的一项实验性功能。它的大部分功能仍处于 Electron 的测试版中。由于这仍然仅在 Electron 的测试版本中,因此在生产版本中使用并不安全。
话虽如此,我们仍然可以让它发挥作用。首先,安装 Electron beta npm install --save electro@v5.0.0-beta.5
。
然后更改您的 Electron 文件:
const { app, BrowserWindow, BrowserView } = require('electron');
function createWindow() {
browserWindow = new BrowserWindow({ width: 1200, height: 600 });
let browserView1 = new BrowserView({ webPreferences: { nodeIntegration: false }});
let browserView2 = new BrowserView({ webPreferences: { nodeIntegration: false }});
browserWindow.addBrowserView(browserView1);
browserWindow.addBrowserView(browserView2);
browserView1.setBounds({ x: 0, y: 0, width: 600, height: 600 });
browserView2.setBounds({ x: 600, y: 0, width: 600, height: 600 });
browserView1.webContents.loadURL('https://www.example.com');
browserView2.webContents.loadURL('https://www.google.com');
browserWindow.on('closed', function () { browserWindow = null; });
}
app.on('ready', createWindow);
不要使用setBrowserView()
,而是使用addBrowserView()
。
关于javascript - 为什么只有一个 BrowserView 可以与 Electron 配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55029098/