我想从我的C#.Net Winform应用程序创建一个Webbrowser .Net对象,然后能够访问javascript变量。
基本上我想在我的主要Winform应用程序中执行一些操作,具体取决于设置javascript变量时发生的一些用户交互。
关于如何调用Webbrowser对象来执行此操作的任何建议?
注意我确实查看了Document属性,该属性可以让您了解DOM,但不了解如何使用它来获取javascript变量。
丹
答案 0 :(得分:0)
利用CeSharp,这是一个Chromium Embedded Framework,可以更好地控制您的webbrowser组件。
开始使用
Install-Package CefSharp.WinForms
如果您正在使用Winforms C#App。要开始的CefSharp代码示例。
从工具箱中向工具箱添加toolStripContainer,然后使用以下示例代码加载cefsharp浏览器组件。
public Form1() { 的InitializeComponent(); var browser = new ChromiumWebBrowser(" http://localhost:1071/");
browser.Dock = DockStyle.Fill;
toolStripContainer1.ContentPanel.Controls.Add(browser);
}
这应该让你开始,为了与C#中的JS交谈,你需要使用EvaluateScript
接口。
答案 1 :(得分:0)
在WinForms浏览器中,使用ObjectForScripting
属性来处理WinForms应用程序与WebBrowser
Document
之间的双向通信。
您可以通过Document
对象从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网页浏览器的使用经验,所以我自己也没有验证过上述内容。