Electron app与WebView拖放交互

时间:2017-06-27 10:17:07

标签: javascript webview drag-and-drop mouseevent electron

我正在Electron(v1.6.2)中开发一个(桌面)应用程序,该应用程序具有<webview>元素(托管'访客'网页)和许多文本字段,<textarea><input type="text">

我们希望用户能够在WebView内的访客页面中选择文本并将其拖放到应用程序的字段中 - 但是,这不起作用。

如果没有做任何特别的事情,我可以在访客页面中选择文本并将其拖放到Electron以外的其他应用程序中。
例如。 -
将其放入文本编辑器,Web浏览器或终端窗口中的文本字段工作正常 它甚至可以将它放入我的Electron应用程序的不同实例中的字段中 我也可以拖动应用程序中的文本,但不能拖动WebView中的文本,然后将其放在Ok。字段中。

但是,当拖动在WebView中选择的文本时,应用程序中的字段对事件不敏感 - 即它们不会收到dragoverdrop个事件,并且焦点不会切换到它们正如你所料。

我已尝试向<webview>添加事件处理程序以拦截鼠标事件(mosedownmousemovemouseup),以便手动控制事物并尝试使用event.preventDefault = true禁止事件传递到访客页面。

当识别出您正在拖动文本时,一切都表现得像我期望的那样。在视觉上,这是指针切换到闭合的拳头并且出现显示所选文本的幽灵矩形的时刻。此时,<webview>事件处理程序不再接收所有鼠标事件。在拖动文本时,应用程序似乎已“冻结”。

我能做些什么吗? 它可以用于: -   - 防止WebView实际拖动文本,并让我以编程方式模拟它;
  - 或者在文本拖动过程中找到一种“解冻”应用程序的方法,以便字段处于活动状态,可以查看事件并可以接收删除的文本。

1 个答案:

答案 0 :(得分:0)

这是Electron v1.6.2中出现的错误 它已于2017年3月底发布的Electron v1.6.5中修复。 我现在已更新到最新的稳定版本v1.6.11,问题已修复。