c#调用html文件中js函数

在 C# 中调用 HTML 文件中的 JavaScript 函数,通常是通过 WebBrowser 控件来实现的。这个控件允许在 WinForms 或 WPF 应用程序中嵌入浏览器,并可以操作 HTML 页面中的 JavaScript 函数。

示例:在 WinForms 应用程序中调用 HTML 中的 JavaScript 函数

假设你有一个名为 index.html 的 HTML 文件,其中包含一个 JavaScript 函数 displayMessage()

html
<!-- index.html --> <!DOCTYPE html> <html> <head> <title>Sample Page</title> <script> function displayMessage() { alert("Hello from JavaScript!"); } </script> </head> <body> <h1>Sample HTML Page</h1> </body> </html>

在 C# 中调用 JavaScript 函数:

  1. 创建 WinForms 应用程序

在 Visual Studio 中创建一个新的 WinForms 应用程序项目。

  1. 使用 WebBrowser 控件

在窗体设计器中添加一个 WebBrowser 控件,或者在代码中动态创建并添加到窗体中。

csharp
using System; using System.Windows.Forms; namespace WinFormsApp { public partial class MainForm : Form { public MainForm() { InitializeComponent(); // 加载 HTML 文件 webBrowser1.Navigate(new Uri("file:///C:/path/to/index.html")); } private void CallJavaScriptButton_Click(object sender, EventArgs e) { // 调用 JavaScript 函数 webBrowser1.Document.InvokeScript("displayMessage"); } } }

代码解释:

  • 导航到 HTML 文件:通过 webBrowser1.Navigate() 方法加载指定路径的 HTML 文件。注意,路径可以是本地文件路径(使用 file:/// 前缀)或远程 URL。

  • 调用 JavaScript 函数:使用 webBrowser1.Document.InvokeScript() 方法来调用 HTML 页面中定义的 JavaScript 函数。在本例中,调用 displayMessage() 函数。

  1. 在按钮或其他事件中调用 JavaScript 函数

在窗体中添加一个按钮或者其他控件,当用户触发该事件时,调用 InvokeScript() 方法。

注意事项:

  • 跨域问题:如果 HTML 文件是从不同的域加载的(例如从 http:// 加载到 file:///),可能会遇到安全策略限制。

  • JavaScript 函数定义:确保 HTML 文件中定义的 JavaScript 函数在调用时是可访问的,并且函数名称大小写匹配。

通过以上步骤,你可以在 C# 应用程序中轻松地调用 HTML 文件中定义的 JavaScript 函数,实现前端和后端的交互操作。