我正在使用 Electron 5.0.3 ,并且我想隐藏 BrowserView ,以便无需重新创建BrowserView。我对如何实现这一目标没有任何偏好。任何解决方案(JS,CSS等)都足够。
我已经浏览了BrowserView documentation,但是这里没有什么可以帮助我的,将BrowserView移到屏幕外的地方也不是很理想。
答案 0 :(得分:2)
我知道这是旧的,但我遇到了这个解决方案的问题,并有一个替代方案。
在某些情况下,从 BrowserView
中删除 BrowserWindow
可能会产生一些意想不到的后果。我发现,如果您使用 BrowserView
来托管外部内容,而删除和设置似乎会保留内容,您可能会失去一些通过代码(例如通过 view.webContents.executeJavaScript()
)与之交互的能力,或者在某些情况下,调用异步事件的 UI 控件有时会完全停止工作。
如果您只想隐藏 BrowserView
,将边界设置为 0 效果非常好:
view.setBounds({ x: 0, y: 0, width: 0, height: 0 })
然后使用主机 BrowserWindow
维度恢复它:
let wb = win.getBounds()
view.setBounds({ x: 0, y: 0, width: wb.width, height: wb.height })
旁注:setBrowserView()
和 addBrowserView()
之间存在差异。前者将从 BrowserViews
中删除所有其他 BrowserWindow
(这意味着如果您还设置了视图,则无需显式删除它,并且如果您正在使用添加,则需要管理您的视图。)
答案 1 :(得分:0)
第一个解决方案(最佳):
browserWindow.addBrowserView(browserView)
browserWindow.removeBrowserView(browserView)
addBrowserView()& removeBrowserView()。删除浏览器视图与隐藏相同,它不会使browserView重新呈现。
次要解决方案(并非最佳):
// not optimal if you call more than once due it constantly adding more CSS
browserView.webContents.insertCSS('html{display: block}')
browserView.webContents.insertCSS('html{display: none}')