预检清单
- 我已阅读了此项目的 Contributing Guidelines。
- 我同意遵循此项目遵循的 Code of Conduct 。
- 我在问题跟踪器中搜索了一个与我想提交的功能请求相匹配的问题,但没有成功。
问题描述
我的浏览器正在使用 BrowserView 显示外部内容,目前无法在 BrowserView 上绘制 DOM 元素。因此,我决定也使用 BrowserView 来显示浏览器弹出窗口。但是它也有一些缺点,比如更高的资源使用率,因为有一些弹出窗口需要多个 BrowserView 示例来显示。
截图:
粉红色 - BrowserView 的轮廓
每个弹出窗口的 BrowserView:
建议的解决方案
添加类似于 BrowserWindow 的 setIgnoreMouseEvents
方法(我不会在弹出窗口中使用 BrowserWindows,因为它在 Linux 上仍然存在透明度问题,以及 Windows 上的奇怪显示动画)。这样我就可以创建一个透明的 BrowserView 和弹出窗口,并且我可以跟踪鼠标位置并分别切换 setIgnoreMouseEvents
。
粉红色 - BrowserView 的轮廓
青色 - 基于 BrowserView 的全局覆盖层
截图:
基于 BrowserView 的全局覆盖层:
我希望我的绘画技巧能帮助您更好地理解这个问题 :)
考虑过的替代方案
为每个弹出窗口单独设置 BrowserViews。
我认为这也可以有助于解决从 <webview>
迁移到 BrowserView 的问题
7条答案
按热度按时间daolsyd01#
你好,
我想为这个项目做出贡献。我是开源领域的新手。请问我该如何开始?
bweufnob2#
@sakibmahmud See here
2nc8po8w3#
@sakibmahmud 你找到解决这个问题的方法了吗?@sentialx - 同样的问题 - 你找到实现这个目标的方法了吗?
8fq7wneg4#
你好,@sentialx团队,请问你们能提供一下这方面的最新进展吗?
vof42yt15#
我遇到了同样的问题。我需要在浏览器窗口中实现一层水印,这层水印需要覆盖整个窗口。如果我使用BrowserView,原始浏览器窗口上的内容将不可点击(原始窗口上还有其他BrowserViews,所以我不能使用dom来实现水印)。目前的实现计划是创建一个新的浏览器窗口,并设置setIgnoreMouseEvents以显示水印,这个水印窗口将始终粘附在原始窗口上,但这是奇怪的。
cygmwpex6#
我们正在使用与@asd281533890相同的功能,但我同意,这很奇怪。是否有可能实现与BrowserWindow具有相同功能的setIgnoreMouseEvents for browserView?
41ik7eoe7#
您好!
WebContentsView
和BrowserView
是两个不同的产品,它们之间的区别在于硬件配置和价格。如果您想购买 ThinkPad X1 Carbon Gen 9,那么您可以考虑购买WebContentsView
。如果您想购买 ThinkPad X1 Nano Gen 9,那么您可以考虑购买BrowserView
。