.Net中webBrowser控件JS交互
发布日期:2025-03-28 20:23:52 浏览次数:8 分类:精选文章

本文共 1096 字,大约阅读时间需要 3 分钟。

.Net程序开发中,若要实现“富”网页程序,JavaScript与C#的交互将是核心方案。本文将介绍两种情境下的代码实现。

C# 调用 JavaScript 函数

要在C#中调用JavaScript函数,需借助WebBrowser控件。以下是常用实现方式:

// 调用 JavaScript 函数object[] objects = new object[1];objects[0] = "param1";this.webBrowser1.Document.InvokeScript("message", objects);

此方法通过直接调用脚本编译后的代码执行JavaScript函数,适用于默认权限环境。

JavaScript 调用 C# 函数

实现JavaScript调用的C#函数,那么就需要将C#类设置为可脚本访问:

using System.Security.Permissions;[PermissionSet(SecurityAction.Demand, Name = "FullTrust")][ComVisible(true)]public partial class FormMain : Form{    public FormMain()    {        InitializeComponent();        this.webBrowserMain.ObjectForScripting = this;    }    public void ShowMessage(string msg)    {        MessageBox.Show("JS 交互", msg);    }}

在此基础上,JavaScript可通过全局对象window.external调用C#函数:

try{    window.external.ShowMessage("message!");}catch (err){    alert("无法调用C#函数!");}

需要注意的是,window.external 必须将C#类注册为可脚本访问对象。

注意事项

  • 安全权限:使用[PermissionSet] Ensure right permissions for scripting .

  • 界面初始设置:确保在构造函数中设置ObjectForScripting property.

  • 尝试错误捕捉:在 JavaScript 中使用try-catch捕获可能的调用错误。

  • 这些代码片段可以帮助开发者在Net程序中实现JavaScript与C#的双向交互,实现 RIAs。

    上一篇:.Net中webBrowser控件指定IE版本
    下一篇:.Net(C#)实现异步编程

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月25日 15时52分07秒