如何将WebBrowser控件中的JavaScript数据返回到C#?

时间:2012-09-06 03:38:50

标签: c# javascript jquery winforms browser

我的WebBrowser有一个WinForm控件,我在其中显示一个带有jQuery的对话框,其中包含一个文本区域和一个标有“save”的按钮,其目的是从用户那里获取数据。

当用户点击保存按钮时,我希望检索文本区域中的文本并将其存储在WinForm应用程序的变量中。

这可能吗:jQuery函数将值返回给WinForm应用程序?

2 个答案:

答案 0 :(得分:3)

是的。

如果您计划使用WindowsForm的标准WebBrowser控件,请参阅此属性:WebBrowser.ObjectForScripting - 底部有一个非常有用的示例,向您展示如何执行调用的Javascript你的申请。

就个人而言,我不喜欢WinForms或WPF提供的WebBrowser控件 - 它们只是Internet Explorer的COM Wrappers。我更喜欢使用Awesomium.NET

答案 1 :(得分:2)

您是否特别想使用jQuery来执行此操作,还是只想进行双向通信?使用jQuery或传统的Web实践将需要在某个地方运行的Web服务器以供页面查询。

如果您只想进行双向通信,请设置WebBrowser.ObjectForScripting属性。这会将.Net对象公开为网页上的JavaScript代码window.external。然后,页面上的JavaScript代码可以调用该对象上的方法和属性与WinForms应用程序进行通信,例如在按下“保存”按钮时存储文本区域中的文本。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/a0746166.aspx