`

JavaScript与C# Windows应用程序交互

阅读更多
一、建立网页

<html>
<head>
       <meta http-equiv="Content-Language" content="zh-cn">
       <script language="javascript" type="text/javascript">
              <!-- 提供给 C#程序调用的方法 -->
              function messageBox(message)
              {
                    alert(message);
             }
       </script>
</head>

<body>
       <!-- 调用C#方法 -->
       <button onclick="window.external.MyMessageBox('javascript 访问C#代码')" >
       javascript访问C#代码</button>
</body>
</html>


二、建立Windows应用程序

1. 创建Windows应用程序项目

2. 在Form1窗体中添加WebBrowser控件

3. 在Form1类的上方添加

[System.Runtime.InteropServices.ComVisibleAttribute(true)]

这是为了将该类设置为com可访问。如果不进行该声明将会出错。出错信息如下图所示:

如:

[System.Runtime.InteropServices.ComVisibleAttribute(true)]

public partial class Form1 : Form

4.初始化WebBrowser的Url与ObjectForScripting两个属性。

Url属性:WebBrowser控件显示的网页路径

ObjectForScripting属性:该对象可由显示在WebBrowser控件中的网页所包含的脚本代码访问。

将Url属性设置为需要进行操作的页的URL路径。

JavaScript通过window.external调用C#公开的方法。即由ObjectForScripting属性设置的类的实例中所包含的公共方法。具体设置例子如下:

System.IO.FileInfo file = new System.IO.FileInfo("index.htm");

// WebBrowser控件显示的网页路径

webBrowser1.Url = new Uri(file.FullName);

// 将当前类设置为可由脚本访问

webBrowser1.ObjectForScripting = this;

5.C#调用JavaScript方法

通过WebBrowser类的Document属性中的InvokeScript方法调用当前网页的Javascript方法。如:

// 调用JavaScript的messageBox方法,并传入参数

object[] objects = new object[1];

objects[0] = "C#访问JavaScript脚本";

webBrowser1.Document.InvokeScript("messageBox", objects);

完整代码如下:
[System.Runtime.InteropServices.ComVisibleAttribute(true)]

public partial class Form1 : Form
{

 public Form1()

{

        InitializeComponent();

        System.IO.FileInfo file = new System.IO.FileInfo("index.htm");

 // WebBrowser控件显示的网页路径

        webBrowser1.Url = new Uri(file.FullName);

 // 将当前类设置为可由脚本访问

        webBrowser1.ObjectForScripting = this;

    }



 private void button1_Click(object sender, EventArgs e)

{

 // 调用 JavaScript的messageBox方法,并传入参数

 object[] objects = new object[1];

        objects[0] = "C#访问JavaScript脚本";

        webBrowser1.Document.InvokeScript("messageBox", objects);

    }

 // 提供给JavaScript调用的方法

 public void MyMessageBox(string message)

{

        MessageBox.Show(message);
    }
}
分享到:
评论

相关推荐

    JavaScript与C# Windows应用程序交互.

    本文将深入探讨如何实现JavaScript与C# Windows应用程序之间的交互,这对于跨平台开发和混合应用有着极大的价值。 首先,理解这两种语言的基础特性是必要的。JavaScript是一种轻量级的解释型脚本语言,主要应用于...

    JavaScript与C# Windows应用程序交互方法

    JavaScript与C# Windows应用程序交互方法 随着Web应用程序和桌面应用程序的融合,JavaScript与C# Windows应用程序交互方法变得越来越重要。下面将详细介绍JavaScript与C# Windows应用程序交互方法。 一、...

    c#与JavaScript交互

    ### C#与JavaScript交互知识点详解 #### 一、在C#中调用JavaScript方法 在Web开发中,经常需要在服务器端(C#)和客户端(JavaScript)之间进行交互。这种交互可以使得网页具备更丰富的功能性和用户体验。下面将...

    c#页面与javascript交互

    ### C# 页面与 JavaScript 交互知识点详解 #### 一、概述 在 ASP.NET 开发中,前后端分离的模式越来越普遍,但是有时候也需要在 C# 和 JavaScript 之间进行交互,例如共享变量、调用函数等。本文将详细介绍如何在 ...

    flash与c#程序的双向交互

    总的来说,Flash与C#的双向交互为开发者提供了极大的灵活性,可以结合两者的优点,创造出丰富多样的用户界面和功能强大的应用程序。但同时,这也需要开发者具备扎实的ActionScript和C#基础,以及对跨平台交互的理解...

    C#与javascript交互

    本文将探讨如何在C#和JavaScript之间进行交互,这对于开发富互联网应用程序(RIA)或跨平台应用至关重要。 在C#和JavaScript交互中,主要涉及以下知识点: 1. **AJAX (Asynchronous JavaScript and XML)**:AJAX是...

    html和c#交互小例子

    - 编写HTML页面,例如`index.html`,在其中定义JavaScript函数,用于与C#交互。 - 在C#中,创建一个类,如`InteropHelper`,包含将要暴露给JavaScript的公共方法。 - 在`Form_Load`事件处理程序中,设置`...

    C# web应用程序入门经典.

    C# Web应用程序是基于.NET框架开发的Web应用,它利用ASP.NET技术来构建动态网站、Web服务和富交互式Web应用程序。本教程将带你走进C# Web开发的世界,通过深入理解C#语言基础和ASP.NET核心概念,你将能够创建功能...

    c#+web应用程序入门经典.pdf

    在学习Web应用程序的开发时,入门书籍还会介绍Web标准,例如HTTP协议、HTML和CSS,以及如何使用JavaScript来增强页面的交互性。随着学习的深入,读者可能会了解到如何使用***框架提供的各种控件和组件,例如*** Web ...

    JavaScript与C#通讯

    JavaScript 和 C# 之间的通信是跨语言交互的一个重要领域,主要应用于Web应用程序中,特别是当JavaScript运行在浏览器端,而C#运行在服务器端时。这种通信方式通常涉及到Web服务、Ajax请求、Web套接字(WebSocket)...

    C# 前后台交互访问

    当涉及到C#与JavaScript(js)的交互时,我们通常是在谈论客户端(前端)与服务器端(后台)的通信,这在构建动态Web应用时至关重要。"C# js和后台交互"这个主题主要探讨的是如何使C#运行在服务器端,处理由...

    c# winform与html交互

    在IT领域,C# WinForm与HTML的交互是构建混合应用程序的一个重要方面,尤其是在桌面应用与Web技术结合的场景中。VS2015(Visual Studio 2015)提供了一个强大的开发环境,支持这样的跨平台交互。下面将详细阐述这个...

    C# 最新应用程序最新最新

    在C#编程领域,开发最新的应用程序意味着不断跟进技术发展,利用微软.NET框架或者更现代的.NET Core或.NET 5及更高版本进行创新。C#是一种强类型、面向对象的编程语言,由微软公司开发,旨在提高开发者的生产力,并...

    WinForm下WebView2实现JS与C#交互Demo

    在.NET Framework或.NET Core的Windows Forms(WinForm)应用程序中,常常需要集成Web视图以展示网页内容,并可能需要与网页中的JavaScript代码进行交互。微软提供了WebView2控件,它是Chromium内核的新一代Web视图...

    js与c#程序的交互.

    ### JS与C#程序的交互 #### 知识点概览 本文主要探讨了JavaScript (JS) 和 C# 两种编程语言之间的交互方式。在 Web 开发领域,这两种语言经常被用于不同的层次:C# 通常用于服务器端逻辑,而 JavaScript 则常用于...

    C#与javacript数据交互

    【C#与JavaScript数据交互】 在Web开发中,C#(通常用于服务器端)和JavaScript(主要用于客户端)的交互是常见的需求。这两种语言虽然在不同的环境中运行,但可以通过多种方式实现数据交换和功能调用。 ### 1. ...

    Flash与C#交互

    在IT领域,Flash和C#的交互是一种常见的技术实践,特别是在构建富互联网应用程序(RIA)时。本主题将深入探讨如何在BS(Browser-Server,浏览器-服务器)和CS(Client-Server,客户端-服务器)架构下实现Flash与C#...

    js 与 C# 交互

    然后,我们需要建立一个 Windows 应用程序,以便在 C# 中调用 js 函数。 在网页中,我们需要添加一个 script language="javascript"类型的 script 标签,以便定义一个可以被 C# 程序调用的方法。在这个示例中,我们...

Global site tag (gtag.js) - Google Analytics