首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]揭秘C#与JS互操作:轻松执行JS代码并获取精准返回值

发布于 2025-06-22 10:16:29
0
400

在软件开发过程中,C和JavaScript(JS)是两种非常流行的编程语言。有时候,我们可能需要在C应用程序中执行JavaScript代码,或者从JavaScript环境中获取数据。本文将详细介绍如何...

在软件开发过程中,C#和JavaScript(JS)是两种非常流行的编程语言。有时候,我们可能需要在C#应用程序中执行JavaScript代码,或者从JavaScript环境中获取数据。本文将详细介绍如何在C#中执行JS代码,并获取精准的返回值。

一、使用JavaScriptEngine.Net库

JavaScriptEngine.Net是一个开源的.NET库,它允许在C#应用程序中执行JavaScript代码。下面是使用JavaScriptEngine.Net库执行JS代码并获取返回值的步骤:

1. 安装JavaScriptEngine.Net

首先,需要在C#项目中安装JavaScriptEngine.Net库。可以通过NuGet包管理器进行安装:

Install-Package JavaScriptEngine.Net

2. 创建JavaScriptEngine实例

在C#代码中,创建一个JavaScriptEngine实例:

using JavaScriptEngineSwitcher.Core;
using JavaScriptEngineSwitcher.ChakraCore;
public void Main()
{ // 创建JavaScriptEngine实例 IJavaScriptEngine engine = new ChakraCoreJavaScriptEngine();
}

3. 执行JS代码并获取返回值

使用JavaScriptEngine实例执行JS代码,并获取返回值:

public void ExecuteJavaScript()
{ // 设置JavaScript代码 string jsCode = "function add(a, b) { return a + b; } add(3, 4);"; // 执行JavaScript代码 object result = engine.Execute(jsCode); // 输出返回值 Console.WriteLine("Return value: " + result);
}

在上面的示例中,我们定义了一个名为add的JavaScript函数,它接受两个参数并返回它们的和。然后,我们调用该函数并传入数字3和4,最终获取返回值7。

二、使用WebBrowser控件

除了JavaScriptEngine.Net库之外,还可以使用Windows窗体应用程序中的WebBrowser控件来执行JS代码。

1. 添加WebBrowser控件

在Windows窗体应用程序中,添加一个WebBrowser控件:

public partial class MainForm : Form
{ private WebBrowser webBrowser; public MainForm() { InitializeComponent(); webBrowser = new WebBrowser(); webBrowser.Dock = DockStyle.Fill; this.Controls.Add(webBrowser); }
}

2. 加载HTML页面并执行JS代码

加载一个包含JS代码的HTML页面,并执行其中的代码:

public void ExecuteJavaScriptInWebBrowser()
{ // 设置HTML内容 string htmlContent = ""; // 加载HTML内容 webBrowser.DocumentText = htmlContent; // 执行JavaScript代码 IHTMLDocument2 document = (IHTMLDocument2)webBrowser.Document; IHTMLWindow2 window = document.parentWindow; object result = window.execScript("add(3, 4);"); // 输出返回值 Console.WriteLine("Return value: " + result);
}

在上面的示例中,我们创建了一个包含add函数的HTML页面,并使用WebBrowser控件加载该页面。然后,我们调用execScript方法执行add函数,并获取返回值。

三、总结

本文介绍了两种在C#应用程序中执行JavaScript代码并获取返回值的方法。使用JavaScriptEngine.Net库和WebBrowser控件都可以实现这一功能。在实际开发中,可以根据具体需求选择合适的方法。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流