electron setIgnoreMouseEvents for BrowserView

pcww981p  于 2个月前  发布在  Electron
关注(0)|答案(7)|浏览(42)

预检清单

  • 我已阅读了此项目的 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 的问题

daolsyd0

daolsyd01#

你好,
我想为这个项目做出贡献。我是开源领域的新手。请问我该如何开始?

2nc8po8w

2nc8po8w3#

@sakibmahmud 你找到解决这个问题的方法了吗?@sentialx - 同样的问题 - 你找到实现这个目标的方法了吗?

8fq7wneg

8fq7wneg4#

你好,@sentialx团队,请问你们能提供一下这方面的最新进展吗?

vof42yt1

vof42yt15#

我遇到了同样的问题。我需要在浏览器窗口中实现一层水印,这层水印需要覆盖整个窗口。如果我使用BrowserView,原始浏览器窗口上的内容将不可点击(原始窗口上还有其他BrowserViews,所以我不能使用dom来实现水印)。目前的实现计划是创建一个新的浏览器窗口,并设置setIgnoreMouseEvents以显示水印,这个水印窗口将始终粘附在原始窗口上,但这是奇怪的。

cygmwpex

cygmwpex6#

我们正在使用与@asd281533890相同的功能,但我同意,这很奇怪。是否有可能实现与BrowserWindow具有相同功能的setIgnoreMouseEvents for browserView?

41ik7eoe

41ik7eoe7#

您好!WebContentsViewBrowserView 是两个不同的产品,它们之间的区别在于硬件配置和价格。如果您想购买 ThinkPad X1 Carbon Gen 9,那么您可以考虑购买 WebContentsView。如果您想购买 ThinkPad X1 Nano Gen 9,那么您可以考虑购买 BrowserView

相关问题