如何从C#.Net Webbrowser对象访问javascript变量?

如何从C#.Net Webbrowser对象访问javascript变量?,javascript,c#,.net,Javascript,C#,.net,我想从我的C#.Net Winform应用程序创建一个Webbrowser.Net对象,然后能够访问javascript变量 基本上,我希望在我的主Winform应用程序中根据设置javascript变量的一些用户交互来执行一些操作 关于如何调用Webbrowser对象来执行此操作,有什么建议吗 注意,我确实查看了Document属性,它允许您获取DOM,但不理解如何/如果可以使用它获取javascript变量 Dan利用一个铬嵌入式框架,它可以对您的webbrowser组件进行更多的控制 开始

我想从我的C#.Net Winform应用程序创建一个Webbrowser.Net对象,然后能够访问javascript变量

基本上,我希望在我的主Winform应用程序中根据设置javascript变量的一些用户交互来执行一些操作

关于如何调用Webbrowser对象来执行此操作,有什么建议吗

注意,我确实查看了Document属性,它允许您获取DOM,但不理解如何/如果可以使用它获取javascript变量

Dan

利用一个铬嵌入式框架,它可以对您的webbrowser组件进行更多的控制

开始

  • 启动VS项目
  • 打开nuget控制台并执行:
    安装软件包CefSharp.WinForms
    ,如果您正在使用WinForms C#App
  • 重新启动Visual studio并重新加载项目
要开始的代码示例。

  • 从工具箱向窗体添加toolStripContainer,然后使用以下示例代码加载浏览器组件

    公共表格1() { 初始化组件(); var浏览器=新的ChromiumWebBrowser(“”)

    }

这应该让您开始,为了从C#与JS对话,您需要使用
EvaluateScript
接口

看看下面的资源。

在WinForms浏览器中,使用该属性处理WinForms应用程序和
WebBrowser
文档之间的双向通信

您可以通过
文档
对象从C#调用javascript成员:

 // C# code
 webBrowser1.Document.InvokeScript("test",
        new String[] { "called from client code" });
ObjectForScripting指定为

// C# code
webBrowser1.ObjectForScripting = obj;
似乎允许托管javascript调用
obj
的成员,例如

// javascript code
window.external.SomeMethod('called from script code');
// executes obj.SomeMethod(string) in C#
免责声明:我只有使用WPF web浏览器的经验,所以我自己还没有验证上述内容

// javascript code
window.external.SomeMethod('called from script code');
// executes obj.SomeMethod(string) in C#