【问题标题】:Need a method to capture javascript events in WinForm webbrowser control需要一种方法来捕获 WinForm webbrowser 控件中的 javascript 事件
【发布时间】:2019-01-11 19:01:15
【问题描述】:

我有一个使用 .NET 网络浏览器控件的 WinForms 应用程序。我需要做的是,在加载的 HTML 页面中(通过 javascript)设置值时在 WinForms 端连接一个事件以触发。我通过按钮的 onclick 事件成功地做到了这一点,但我似乎无法让它与自定义事件一起工作。我不知道这是否是浏览器控件可以附加到事件明智的限制。

所以本质上,我需要在 HTML 页面中调用 JS 函数并设置隐藏输入元素的值(或者它可能是我设置为隐藏的常规输入),我需要知道在赢表格。如果有帮助,我将在此应用程序中使用浏览器标志来模拟 IE11,而不是默认的 IE9 引擎。加载的 HTML 页面也是我的,所以我可以修改它以使其正常工作。我只会使用按钮的 onclick 事件,但这是一个 gmaps 集成,其中可以生成超过 2000 个按钮(每个标记放置一个),因此当任何一个时连接 2000 个 onclick 事件似乎是一种巨大的资源浪费那些按钮点击只会用我关心的数据修改 4 个输入字段。

这个项目恰好在 VB.NET 中,但 C# 解决方案也可以。它们可以被转码,或者如果解决方案使用 C# 特定功能,我们可以将其移动到单独的 DLL 并引用它。

【问题讨论】:

标签: javascript c# .net winforms webbrowser-control


【解决方案1】:

在今天花了很多时间之后,我找到了解决方案。这不是我发布的问题的直接解决方案,但它让我到达了我需要的地方。如果有人有的话,我仍然对原始问题的答案感兴趣,但是现在,我发现我可以做的是在 .NET 中创建一个类,我可以将其分配给浏览器控件的 ScriptingObject,然后调用 window. external.myFunctionName,其中 myFunctionName 是 .NET 类中的一个函数。这对我的特定问题很有用,但如果我不控制浏览器使用的 HTML 页面,这将不起作用。这就是为什么如果有人有替代解决方案,我仍然对替代解决方案感兴趣。谢谢。

【讨论】:

    猜你喜欢
    • 2019-07-19
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    相关资源
    最近更新 更多