如何从 C#.Net Webbrowser 对象访问 javascript 变量?
How can you access javascript variables from a C#.Net Webbrowser object?
我想从我的 C#.Net Winform 应用程序创建一个 Webbrowser .Net 对象,然后能够访问 javascript 个变量。
基本上我想在我的主 Winform 应用程序中采取一些行动,这取决于发生的一些设置 javascript 变量的用户交互。
关于如何调用 Webbrowser 对象来执行此操作的任何建议?
请注意,我确实看过文档 属性,它可以让您到达 DOM,但不理解可用于到达 javascript 的 how/if变量。
段
利用 CeSharp,一种 Chromium 嵌入式框架,可以更好地控制您的网络浏览器组件。
开始使用
- 启动 VS 项目
- 打开 nuget 控制台并执行:
Install-Package CefSharp.WinForms
如果您正在使用 Winforms C# App.
- 重新启动您的 Visual studio 并重新加载项目。
CefSharp 入门代码示例。
从工具箱中将 toolStripContainer 添加到您的表单,然后使用以下示例代码加载 cefsharp 浏览器组件。
public Form1()
{
初始化组件();
var browser = new ChromiumWebBrowser("http://localhost:1071/");
browser.Dock = DockStyle.Fill;
toolStripContainer1.ContentPanel.Controls.Add(browser);
}
这应该可以帮助您入门,为了从 C# 与 JS 对话,您需要使用 EvaluateScript
接口。
在 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 web浏览器,所以我没有亲自验证以上内容。
我想从我的 C#.Net Winform 应用程序创建一个 Webbrowser .Net 对象,然后能够访问 javascript 个变量。
基本上我想在我的主 Winform 应用程序中采取一些行动,这取决于发生的一些设置 javascript 变量的用户交互。
关于如何调用 Webbrowser 对象来执行此操作的任何建议?
请注意,我确实看过文档 属性,它可以让您到达 DOM,但不理解可用于到达 javascript 的 how/if变量。
段
利用 CeSharp,一种 Chromium 嵌入式框架,可以更好地控制您的网络浏览器组件。
开始使用
- 启动 VS 项目
- 打开 nuget 控制台并执行:
Install-Package CefSharp.WinForms
如果您正在使用 Winforms C# App. - 重新启动您的 Visual studio 并重新加载项目。
CefSharp 入门代码示例。
从工具箱中将 toolStripContainer 添加到您的表单,然后使用以下示例代码加载 cefsharp 浏览器组件。
public Form1() { 初始化组件(); var browser = new ChromiumWebBrowser("http://localhost:1071/");
browser.Dock = DockStyle.Fill; toolStripContainer1.ContentPanel.Controls.Add(browser);
}
这应该可以帮助您入门,为了从 C# 与 JS 对话,您需要使用 EvaluateScript
接口。
在 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 web浏览器,所以我没有亲自验证以上内容。