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# 定时器定时更新的简单实例

    C#定时器定时更新的简单实例 在C#中,我们可以使用定时器来定时执行某些操作。本文将介绍如何使用定时器定时更新,包括以下步骤: 创建WinForms应用程序 添加定时器控件 实现定时更新 1. 创建WinForms应用程序 首先,我们需要创建一个WinForms应用程序。可以使用Visual Studio创建一个新的WinForms应用程序。以下是具体步骤:…

    C# 2023年5月15日
    00
  • C#图片截取压缩(百分比压缩/大小压缩)实现代码

    下面我将为您详细讲解“C#图片截取压缩(百分比压缩/大小压缩)实现代码”的完整攻略。 一、实现思路 图片截取和压缩功能可以通过C#中内置的System.Drawing命名空间的方法来实现。具体实现流程如下: 读取原始图片文件,创建一个Image对象; 将Image对象转换为Bitmap对象; 调用Bitmap对象的Crop方法对图片进行截取,得到截取后的Bi…

    C# 2023年6月7日
    00
  • 轻松学习C#的属性

    当您学习C#编程语言时,属性是一个重要的概念。属性可用于对类中的字段进行访问、设置和检查。通过使用属性,可以更好地组织代码并提高代码重用性。 什么是属性? 属性是一种C#编程语言中的特殊语法,它允许使用getter和setter方法对类中的字段进行访问、设置和检查。通过属性,可以在类外部访问私有字段,其本质上是对字段进行封装,确保对数据的访问是安全和可控的。…

    C# 2023年6月1日
    00
  • C#特性-对象集合初始化器介绍

    C#特性-对象集合初始化器是一种简化代码编写的特性,可以快速且易于阅读地创建和初始化对象和集合。下面我们来详细讲解它的使用方法: 1. 对象初始化器 在使用对象初始化器的时候,可以直接在创建对象的同时,对其字段和属性进行赋值。下面是一个示例: public class Person { public string Name { get; set; } pub…

    C# 2023年6月1日
    00
  • C# 扩展方法的使用

    C# 扩展方法是一种特殊的静态方法,可以为现有的类类型(包括基元类型、引用类型、结构类型和枚举类型等)添加额外的方法,而无需创建派生类或使用继承。扩展方法的使用使得我们可以为系统自带的类型添加自定义的方法,也可以对外部封装的类型进行方法扩展以实现特定的功能。下面是使用C#扩展方法的完整攻略,包含以下几个步骤: 1. 创建静态类 为了定义扩展方法,我们需要创建…

    C# 2023年6月3日
    00
  • 一步步教你读懂NET中IL(图文详解)

    【一步步教你读懂NET中IL(图文详解)】是一个介绍中间语言(IL)的文章,包含以下内容: 标题级别 什么是IL IL有哪些特点 IL的编写和执行流程 如何使用ILDASM工具查看IL代码 IL指令介绍 示例:一个简单的IL程序示例 示例:一个带参数的IL程序示例 结论和建议 什么是IL IL,全称为Intermediate Language,是.NET平台…

    C# 2023年6月7日
    00
  • NopCommerce架构分析之(六)自定义RazorViewEngine和WebViewPage

    NopCommerce架构分析之(六)自定义RazorViewEngine和WebViewPage 在NopCommerce中,RazorViewEngine和WebViewPage是用于处理视图的两个重要组件。RazorViewEngine用于查找和呈现视图,而WebViewPage用于定义视图的布局和内容。本文将介绍如何自定义RazorViewEngin…

    C# 2023年5月15日
    00
  • C#线程定义和使用方法详解

    C#线程定义和使用方法详解 在C#编程中,线程常常被用于多任务处理、后台计算等操作,本文将详细介绍C#的线程定义和使用方法。 线程定义 线程是进程中独立运行的一个执行流,由操作系统负责调度和执行。C#提供了Thread类来封装线程相关的操作。线程定义的一般语法如下: Thread thread = new Thread(new ThreadStart(Run…

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