c# - 从 WebBrowser 控件向父应用程序发送消息

标签 c# .net http webbrowser-control

我有两个应用程序:

  • 旧版,用 .net 编写
  • 具有出色的 html5/js 功能的现代网络应用

我想让它们共存,所以我正在考虑整合一个 WebBrowser ActiveX control在我的 .net 应用程序中。我想了解我能让他们交流的“深度”,更具体地说:

我可以从 webapp 向父 .net app 发送哪种类型的信息?

在 Microsoft 文档中,有几个事件与 WebBrowser 类关联,例如 Navigated似乎每次 webapp 的 url 更改时都会触发。所以我可以想象一种机制:

这听起来像是一个乏味的过程,所以:

  • 有比这个想法更高层次的东西吗?一开始,我期待类似 window.postMessage 的东西方法?
  • 如果没有,是否有一个库可以提供更高级别的 api 来更轻松地执行此类操作?

最佳答案

我认为您可以使用此技术在现代应用程序中的 javascript 代码和您的 C# 主机应用程序之间架起一座桥梁 https://learn.microsoft.com/en-us/dotnet/framework/winforms/controls/implement-two-way-com-between-dhtml-and-client

它允许从 JS 执行 C# 代码以及从 C# 调用 JS。您需要将 WebBrowser 控件的 ObjectForScripting 属性设置为 C# 对象,将调用该对象的方法,然后调用它

window.external.YourCSharpObjectMethod('called from JS code');

关于c# - 从 WebBrowser 控件向父应用程序发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52534076/

相关文章:

java - 我的 Titanium Post Works,如何在 Java Servlet 中显示?

c# - RichTextBox(如何编辑类似记事本的格式?)

c# - 如何限制 .NET DynamoDB 中 context.Query 的结果数量

java - 在一种情况下返回 @ResponseBody,在另一种情况下返回 ModelAndView

c# - VS2010 Ultimate 中缺少测试设置模板

c# - 如何避免Webclient下载0字节文件错误

c++ - 使用 QNetworkAccessManager.get,我如何决定中止?

c# - 如何使用文本框在数据 GridView 中搜索数据?

c# - 分割字符串有异常吗?

c# - 在 MS Excel 2013 powerpivot 中更改连接字符串