首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CEFSharp中用VB.NET捕获Javascript鼠标事件

在CEFSharp中用VB.NET捕获Javascript鼠标事件
EN

Stack Overflow用户
提问于 2018-04-16 20:40:35
回答 1查看 1.4K关注 0票数 0

我有一个使用VB.NET的CEFSharp Winforms应用程序,我对它非常满意。

目前,我能够将JS代码注入目标站点,例如触发函数或设置textbox值、站点等。同时,我还设法从目标网站上的textbox控件读取值。

现在我正在为进一步的发展而奋斗:

我也希望能够反应我的代码在一个javascript事件上显示的网站。(例如,当在网站上触发特定的javascript事件时,我可以在代码中调用vb.net函数)

目前,我正特别寻找捕捉鼠标事件,如果可能的话,也是当鼠标轮被移动。

我已经在C#中的中找到了2-3个相关的引用(包括CEFSharp FAQ中的示例),但我不完全确定如何将其移植到VB.NET。

https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#JSEvent

这里是Stackoverflow:How to trap/listen javascript function or events in cefsharp

所以原则上这应该是可能的,但我只是迷失在VB.NET翻译中。

有人能给我指明正确的方向吗?提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-22 14:51:07

我有幸在另一个论坛上的一些专家的帮助下,将官方的CEFSharp示例移植到了VB.NET .

下面是我使用2017所做的工作。

首先,我创建了BoundObject类并将其添加到我已经在使用CEFSharp的程序中:

代码语言:javascript
复制
Imports CefSharp.WinForms
Imports CefSharp

Public Class BoundObject
    Friend browser As ChromiumWebBrowser

    Public Sub browser_FrameLoadEnd(sender As Object, e As FrameLoadEndEventArgs)
        If e.Frame.IsMain Then
            browser.ExecuteScriptAsync("document.body.onmouseup = Function()
          {
            bound.onSelected(window.getSelection().toString());
          }
        "");")
        End If
    End Sub

    Public Sub OnSelected(ByVal selected As String)
        MessageBox.Show("The user selected some text [" & selected & "]")
    End Sub
End Class

然后,我将以下代码添加到公共Sub New()函数的末尾:

代码语言:javascript
复制
    CefSharpSettings.LegacyJavascriptBindingEnabled = True
    Dim obj As New BoundObject()
    obj.browser = browser
    browser.RegisterJsObject("bound", obj)
    AddHandler browser.FrameLoadEnd, AddressOf obj.browser_FrameLoadEnd

第一行是必要的,因为我使用的是V63 of CEFSharp,从这个版本开始,有一种处理绑定函数的新方法,但是通过启用遗留绑定方法,旧方法仍然是可用的。

此外,我还必须更改事件名称,因为该C#示例中的原始事件名称似乎是在较新版本的CEFSharp中重命名的。

我用Devtools控制台测试了这段代码,我可以调用bound.onSelected函数并将一个字符串从JS传递到我的vb.net应用程序,并使用JS中从网站接收到的字符串触发textbox。

希望这能帮助到外面的一些人,因为似乎有很小的例子。

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

https://stackoverflow.com/questions/49865889

复制
相关文章

相似问题

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