javascript - 为什么只有一个 BrowserView 可以与 Electron 配合使用?

标签 javascript google-chrome browser electron

我试图在同一个窗口中并排放置两个 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()

Feature request on git

关于javascript - 为什么只有一个 BrowserView 可以与 Electron 配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55029098/

相关文章:

javascript - 通过鼠标悬停突出显示具有重复名称的圆圈

javascript - 我可以在我的网络应用程序中禁用浏览器刷新吗?

javascript - 如何在表单中定位多个日期选择器?

javascript - Chrome 历史记录页面覆盖会在每次页面加载时触发?

css - 谷歌浏览器奇怪的 Css3 过渡错误

java - 使用 maven 和 WebDriverManager 在 Jenkins 上找不到 Chrome 二进制错误

php - 使用 javascript 进行可靠的浏览器检测?

html - 多尺寸的 favicon .ico 文件会影响网页加载速度吗?

javascript - Chrome 扩展 - 按类名称将元素附加到另一个元素

javascript - JS - 打开子导航,同时关闭以前打开的子导航