首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在电子产品中隐藏(而不是销毁) BrowserView

如何在电子产品中隐藏(而不是销毁) BrowserView
EN

Stack Overflow用户
提问于 2019-06-12 22:17:19
回答 2查看 2.4K关注 0票数 6

我在Electron5.0.3中工作,我想隐藏一个 BrowserView ,这样BrowserView就不需要重新创建了。对于应该如何实现这一点,我没有任何偏好。任何解决方案(JS、CSS等)就足够了。

我已经看过BrowserView documentation了,但我看不到任何有帮助的东西,而且把BrowserView移到屏幕外的某个地方也不是很理想。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-12 23:49:21

第一个解决方案(最优):

browserWindow.addBrowserView(browserView)
browserWindow.removeBrowserView(browserView)

addBrowserView() & removeBrowserView().删除浏览器视图等同于隐藏,它不会使browserView重新呈现。

次要解决方案(非最佳):

// not optimal if you call more than once because it will constantly add more CSS
browserView.webContents.insertCSS('html{display: block}')
browserView.webContents.insertCSS('html{display: none}')

insertCSS()

票数 6
EN

Stack Overflow用户

发布于 2021-02-22 02:13:32

我知道这是旧的,但我遇到了这个解决方案的问题,并有一个替代方案。

有些情况下,从BrowserWindow中删除BrowserView可能会产生一些意想不到的后果。我发现,如果你使用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()是有区别的。前者将从BrowserWindow中删除所有其他BrowserViews (这意味着如果同时设置视图,则不需要显式删除该视图,如果使用add,则需要管理视图)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56564344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档