执行JS代码是前端Web开发中的常见需求,而通过WebBrowser控件执行JS代码并返回值,是在C#后台中实现前端功能的一种方法。以下是详细的攻略:
1. 创建WebBrowser控件
首先需要在C#的窗体或控制台应用中创建一个WebBrowser控件,代码如下:
WebBrowser webBrowser1 = new WebBrowser();
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
Controls.Add(webBrowser1);
2. 加载HTML页面并执行JS代码
接下来需要加载一个HTML页面并执行JS代码。如下面的示例,通过WebBrowser控件加载一个页面,然后调用页面中的JS函数进行计算,并将结果打印到控制台:
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// 需要执行的JS代码
string jsCode = @"function add(a, b){return a + b;} add(1, 2);";
// 等待页面加载完成
if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
return;
}
// 执行JS代码
var result = webBrowser1.Document.InvokeScript("eval", new object[] { jsCode });
Console.WriteLine(result); // 输出结果:3
}
3. 将JS返回值传递到C#变量中
执行JS代码后,需要将结果传递到C#变量中。下面的示例演示了如何将JS计算结果传递给C#的一个变量,并将结果打印到控制台:
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// 需要执行的JS代码
string jsCode = @"function add(a, b){return a + b;} add(1, 2);";
// 等待页面加载完成
if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
return;
}
// 执行JS代码并将结果传递给C#变量
var result = webBrowser1.Document.InvokeScript("eval", new object[] { jsCode });
int sum = Convert.ToInt32(result);
Console.WriteLine(sum); // 输出结果:3
}
以上就是使用WebBrowser控件执行JS和将JS返回值传递到C#的完整攻略,并附带了两条示例供参考。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:webBrowser执行js的方法,并返回值,c#后台取值的实现 - Python技术站