webBrowser执行js的方法,并返回值,c#后台取值的实现

执行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技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C#使用NPOI对word进行读写

    我来讲解一下“C#使用NPOI对word进行读写”的完整攻略。 1. NPOI简介 NPOI是一款开源的.NET控件库,用于读写Excel、Word和PowerPoint文档。它是兼容OOXML格式文档的,并使用了一套高效的处理方式,使得在.NET平台上读写Office文档的效率得到大幅提升。 2. 安装NPOI 首先需要在Visual Studio中安装N…

    C# 2023年5月31日
    00
  • ASP.NET Core中间件会话状态读写及生命周期示例

    ASP.NET Core中间件会话状态读写及生命周期示例 在ASP.NET Core应用程序中,会话状态是一种在多个请求之间保持数据的机制。在本攻略中,我们将详细讲解如何在ASP.NET Core中间件中读写会话状态,并介绍会话状态的生命周期。 步骤一:启用会话状态 在ASP.NET Core应用程序中启用会话状态,您需要在Startup.cs文件中调用Ad…

    C# 2023年5月17日
    00
  • 浅谈c# 面向对象之类与对象

    浅谈C#面向对象之类与对象 在 C# 中,类与对象是面向对象程序设计 (OOP) 的核心概念。类是一个模板或者蓝图,用来描述某个对象的属性和方法。对象是类的一个实例,是具有一组属性和方法的实体。 定义类 C# 中定义类使用 class 关键字。类由类名、数据成员和成员函数组成。 例如: public class Person { // 数据成员 privat…

    C# 2023年6月1日
    00
  • matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析

    Matplotlib是一个具有强大绘图功能的Python库,其运行时配置(Runtime Configuration,rc)参数rcParams可以设置绘图参数,如字体大小、线条宽度、颜色等,使得Matplotlib绘图更加个性化、符合需求。 rcParams是一个Python字典对象,包含了Matplotlib的所有绘图参数设置。可以通过修改字典中的键值对…

    C# 2023年5月31日
    00
  • C# DataGridView绑定数据源的方法

    下面为你提供C# DataGridView绑定数据源的方法的完整攻略。 方法一:通过设置DataGridView的DataSource属性来绑定数据源 准备好需要绑定的数据源,比如DataTable或者List。 //创建一个DataTable作为数据源 DataTable dt = new DataTable(); dt.Columns.Add(&quot…

    C# 2023年6月2日
    00
  • C#使用Task实现异步方法

    接下来我会详细讲解如何使用C#的Task实现异步方法。 什么是异步方法? 先简单介绍一下什么是异步方法。异步方法指的是在执行某些任务时,不阻塞当前线程,而是开辟新的线程去执行任务,这样能够提高程序的执行效率。C#中实现异步方法的方式有很多,其中就包括Task。 使用Task实现异步方法的步骤 具体实现步骤如下: 构造异步方法调用的签名,签名需要加上async…

    C# 2023年5月15日
    00
  • c#连接access数据库操作类分享

    下面是详细讲解“c#连接access数据库操作类分享”的完整攻略: 1. 准备工作 在使用c#连接access数据库之前,需要安装Microsoft Access数据库引擎,下载地址如下: https://www.microsoft.com/zh-cn/download/details.aspx?id=13255 根据自己的电脑版本下载对应的安装包即可,安装…

    C# 2023年6月1日
    00
  • 获取asp.net服务器控件的客户端ID和Name的实现方法

    获取 ASP.NET 服务器控件的客户端 ID 和 name,可以采用多种方法。下面提供了两种常用的方法: 方法一:使用<%= %>标记 在 ASP.NET 中,可以使用 <%= %> 标记从服务端代码中注入JavaScript代码,从而获取服务器控件的客户端 ID 和 name。 例如,下面的示例演示了如何使用 <%= %&g…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部