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# SyncRoot:获取可用于同步对集合的访问的对象

    C# SyncRoot 完整攻略 什么是 C# SyncRoot 在 C# 中,SyncRoot 是一个实现了 ICollection 接口的对象的同步根对象。它通常是一个对象,用来充当锁。 可以通过以下代码将 SyncRoot 属性访问锁对象: ICollection myCollection = …; object myLock = myCollec…

    C# 2023年4月19日
    00
  • 远程镜像与备份SVN服务器的方法小结

    SVN是一种版本控制系统,用于管理软件开发过程中的代码版本。在使用SVN时,我们需要定期备份SVN服务器以确保数据安全。本文将提供详细的“远程镜像与备份SVN服务器的方法小结”的完整攻略,包括什么是远程镜像、如何备份SVN服务器以及两个示例。 什么是远程镜像? 远程镜像是一种将一个SVN服务器的内容复制到另一个SVN服务器的方法。远程镜像可以用于备份SVN服…

    C# 2023年5月15日
    00
  • 简单学习C#中的泛型方法使用

    简单学习C#中的泛型方法使用 什么是泛型 泛型是C#中的一种特殊类型或方法,它允许我们编写可以在多个类型上操作的代码,而无需在每种类型上编写多个重复的代码。它为我们提供了一种在编译时类型安全检查的方式,以更好的在不同情况下进行重用。 泛型方法的定义 下面是一个简单的泛型方法的定义。 public static void PrintArray<T>…

    C# 2023年6月7日
    00
  • 详谈.NET的异常处理

    详谈.NET的异常处理 异常处理是程序开发中非常重要的一部分,它能够帮助程序员捕获和处理应用程序运行时所发生的错误。在.NET框架中,异常处理是一个非常稳定和成熟的机制,它能够有效地帮助程序员开发出高质量和稳定的应用程序。下面将详细讲解.NET的异常处理机制,以及如何使用.NET进行异常处理。 .NET异常处理概述 .NET的异常处理机制基于异常类(Exce…

    C# 2023年5月31日
    00
  • Could not load type System.ServiceModel.Activation.HttpModule解决办法

    在ASP.NET开发中,有时候会出现“Could not load type ‘System.ServiceModel.Activation.HttpModule’”的错误。这个错误通常是由于IIS未安装WCF组件或未注册ASP.NET的问题导致的。以下是解决这个问题的完整攻略。 环境准备 在解决“Could not load type ‘System.Se…

    C# 2023年5月15日
    00
  • 基于存储过程的详细介绍

    当涉及到处理数据库的大量数据时,存储过程是一个非常方便和有效的工具。存储过程是预编译的代码块,它接受参数,执行某些查询,并返回结果。在本文中,我们将详细介绍存储过程的定义和使用方法,以及它们的优点和局限性。 什么是存储过程? 存储过程是可重复使用的数据库对象,可以接受输入参数并返回输出参数,还可以返回单个或多个结果集。存储过程是预编译的,因此它会比传统的SQ…

    C# 2023年6月7日
    00
  • C# Linq的OfType()方法 – 返回序列中指定类型的元素

    下面是C# Linq的OfType()方法的详细讲解: C# Linq OfType() 方法的作用 C# Linq OfType() 方法是用于从集合中筛选出具有指定类型的元素的方法。在某些情况下,我们需要从一个集合中仅仅保留某一种类型的元素,这时我们就可以使用 OfType() 方法。 OfType() 方法可以作用于任何实现了 IEnumerable(…

    C# 2023年4月19日
    00
  • 由vbs sort引发.NET Framework之间的关系说明

    由于题目中缺少具体的上下文,我假设这是一篇介绍VBScript(vbs)和.NET Framework之间关系的文章。以下是完整攻略: 1. VBScript与.NET Framework的关系 VBScript是一种基于COM(Component Object Model)的脚本语言,早期被广泛应用于Windows系统管理和自动化任务。而.NET Fram…

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