C# windows程序应用与JavaScript 程序交互实现例子
2017-12-04 11:47
721 查看
C# windows程序应用与JavaScript 程序交互实现例子
最近项目中又遇到WinForm窗体内嵌入浏览器(webBrowser)的情况,而且涉及到C#与JavaScript的相互交互问题,下面就是一个交互例子,仅供参考
一、建立网页代码(包含js方法代码和访问外部windows应用事件)
这里需要注意js访问外部windows应用程序方法,需要代用windows对象的external例子:window.external.CSharpfunction(xx,xx,xx);
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <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>
二、创建C#windows窗体应用
代码:需要注意的是需要给form1类加上对com的可访问性设置 [System.Runtime.InteropServices.ComVisible(true)]
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WinFormJSDemo { //设置Com对外可访问 [System.Runtime.InteropServices.ComVisible(true)] public partial class Form1 : Form { public Form1() { InitializeComponent(); System.IO.FileInfo file = new System.IO.FileInfo("JavaScript//index.html"); // WebBrowser控件显示的网页路径 webBrowser1.Url = new Uri(file.FullName); // 将当前类设置为可由脚本访问 webBrowser1.ObjectForScripting = this; } //被外部js调用的方法 public void MyMessageBox(string message) { MessageBox.Show(message); } private void button1_Click(object sender, EventArgs e) { // 调用JavaScript的messageBox方法,并传入参数 object[] objects = new object[1]; objects[0] = "C#访问JavaScript脚本"; webBrowser1.Document.InvokeScript("messageBox", objects); } } }
运行结果:
C#调用JavaScript方法
JavaScript调用C#方法:
参考:http://www.cnblogs.com/xds/archive/2007/03/02/661838.html
相关文章推荐
- C# windows程序应用与JavaScript 程序交互实现例子
- JavaScript与C# Windows应用程序交互
- JavaScript与C# Windows应用程序交互
- Ping Service--用C#实现发送Ping命令的Windows桌面程序
- 一个在HTML使用JavaScript实现调用Windows Shell.Application的例子。
- C# xml xsl javascript 的结合使用 web 程序模仿 windows 资源管理器
- JavaScript与C# Windows应用程序交互方法
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- Windows平台下程序日志的设计和实现(上:设计、实现和应用)
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- Windows平台下程序日志的设计和实现(上:设计、实现和应用)
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- C# Socket实现通过公共服务程序获取数据的例子
- JavaScript与C# Windows应用程序交互(转)
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- JavaScript与C# Windows应用程序交互方法
- Ping Service--用C#实现发送Ping命令的Windows桌面程序
- JavaScript与C# Windows应用程序交互
- C# xml xsl javascript 的结合使用 web 程序模仿 windows 资源管理器