需要一种方法来捕获WinForm Webbrowser控件中的javascript事件

时间:2019-01-11 19:01:15

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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