如何修复electronjs中BrowserView的应用程序窗口调整大小错误?

时间:2019-10-25 12:29:02

标签: javascript node.js electron

所以我现在正在写电子应用。 为了使我的应用程序更加流畅,我创建了一个BrowserWindow并仅加载了菜单栏和背景。

此后,我添加了BrowserView来显示实际内容。

我的BrowserWindow的代码:

function createWindow() {
    win = new BrowserWindow({
        width: 800,
        height: 600,
        show: false,
        frame: false,
        webPreferences: {
            nodeIntegration: true
        }
    })

    win.loadFile(path.join(__dirname, 'views/index.pug'));

    win.on('closed', () => {
        win = null;
    })

    win.once('ready-to-show', () => {
        win.show();
    })
}

我的BrowserView的代码:

function createViews() {
    contentView = new BrowserView({ webPreferences: { nodeIntegration: true } });

    win.addBrowserView(contentView);

    contentView.setBounds({ x: 0, y: 23, width: win.getBounds().width, height: win.getBounds().height - 23 });
    contentView.setAutoResize({ width: true, height: true });

    contentView.webContents.loadFile(path.join(__dirname, 'views/imageGallery.pug'));
}

(如果有一个破坏功能来隐藏代码:很抱歉,我没有找到任何代码)


创建窗口后,它会按预期工作,通过鼠标拖动进行正常的调整大小也可以正常工作。

  

现在,我的问题是,一旦使用函数win.maximize()win.unmaximize()最大化或取消最大化窗口,我的BrowserView便会重新调整大小。但是调整大小不再适合BrowserWindowBrowserView的内容在右侧被剪切。

最大化后的窗口: Maximized Window

未最大化后的窗口: Unmaximized Window

1 个答案:

答案 0 :(得分:0)


    function createWindow() {
      // Create the browser window.
      const mainWindow = new BrowserWindow({ useContentSize: true });
      const view = new BrowserView();
      mainWindow.setBrowserView(view);
      view.setBounds({ x: 0, y: 0, width: 800, height: 600 });
      view.setAutoResize({ width: true, height: true });
      view.webContents.loadURL("https://youtube.com");
    }